我有一個名爲「file.txt」的文件,我想寫我的程序的第一部分有一個函數來首先輸出2個文件。 我的代碼:從一個函數輸出文件Python
f = open("file.txt", "r+")
def Filter_NoD(f):
"""this function filters out lines with no D region and saves them in a separate file"""
lines = open(f, "r+").read().splitlines()
NoD = open("NoD.txt", "w")
withD = open("withD.txt", "w")
for i, line in enumerate(lines):
if ">No D" in line:
NoD.write(lines[i-2]+"\n"+lines[i-1]+"\n"+lines[i])
else:
withD.write(line+"\n")
return NoD, withD
我不能輸出2個文件,NoD.txt和withD.txt,我也試過用了return語句,並仍然沒有輸出文件。 我做錯了什麼?
你是什麼意思,你不能輸出2個文件?...你得到的錯誤?...或文件是空的?...如果是後者,那可能是因爲你沒有關閉文件.. ('NoD.close()'和'withD.close()')..但是如果它是前者然後發佈回溯錯誤消息 –
您發佈的代碼適用於我。你有錯誤嗎?編輯您的問題以包含它。也許問題在於你如何稱呼你的功能。我會注意到你有一個名爲'f'的全局變量,那麼你也有一個名爲'f'的函數的參數,這可能會造成混淆。你的全局'f'是一個文件,你的'f'參數是一個字符串(文件的路徑)。 – dsh
我建議在成功或錯誤時使用['with'語句](https://docs.python.org/2/reference/compound_stmts.html#the-with-statement)來自動關閉文件。 – dsh