特定のディレクトリの拡張子(pdb)で終わるすべてのファイルに対して、それぞれ行のに対して操作を実行したいとします。私の次のコードでは、{lines = pdbinput.read()}の行をの行のにstartswith()操作を実行することはできません。特定の拡張子で終わるディレクトリ内のすべてのファイルの各行で操作を実行する方法は?
import glob, os
os.chdir("F:/python")
for files in glob.glob("*.pdb"):
with open(files) as pdbinput:
lines = pdbinput.read()
with open ('output.txt', 'w') as f1:
for line in lines:
if line.startswith("HETATM"):
print (line, file=f1)
しかし、それは私が直接ラインを印刷することができます:
import glob, os
os.chdir("F:/python")
for files in glob.glob("*.pdb"):
with open(files) as pdbinput:
lines = pdbinput.read()
with open ('modified.txt', 'w') as f1:
print (lines, file=f1)
をあなたはそれが「許可しない」ということは何を意味するか、あなたが '' line.startswith()を行うには?それは効果がありませんでしたか?エラーが発生しましたか?具体的に。 – TigerhawkT3
ファイルの内容をインプレースで変更する場合は、['fileinput'](https://docs.python.org/2/library/fileinput.html)モジュールを見てください。これを行うだけでなく、あなたのコードを大幅に簡素化します。 – tripleee
これを指定しないと申し訳ありません。最初のケースでは、出力の種類はありませんが、2番目のケースでは、拡張子 "pdb"で終わる各ファイルのすべての行を出力して出力します。 –