2017-10-18 4 views
0

ファイルの最初の文字を変更するには、私はループと私は最初の行は1をされているフォルダにある約300のファイルを持っている

これは私が使用しているコードの一部は、0にそれを変更したいですそれは

import os 


for root,dirs,files in os.walk('/home/decentmakeover2/try/'): 
for file in files: 

    if file.endswith('.txt'): 
     with open(file, 'r+b') as f: 
      line = next(f) # grab first line 
      old = '1' 
      new = '0' 
      f.seek(0) 
      f.write(line.replace(old, new)) 

をやったが、私はこのエラー

Traceback (most recent call last): 
    File "one.py", line 8, in <module> 
with open(file, 'r+b') as f: 
IOError: [Errno 2] No such file or directory: 'yield_021.txt' 

を得るが、事は、ファイルがフォルダ内に存在していると私は、ファイルを削除した場合、そのちょうど他のファイルと同じように、私が手で取得するには同じエラーだがファイルが異なる名前

アイデア?

答えて

2

には完全修飾パスが必要なので、os.path.joinを使用してファイル名を使用してルートに参加してください。 rootos.walkによって返される最初の値である

with open(os.path.join(root, file), ...) as f: 

+0

これは完璧です! – Ryan

+0

病気は私がそれを受け入れることができる前に10分以上待たなければならない – Ryan

+0

@ライアンいいですが、どうぞよろしくお願いします。 –

関連する問題