0
我想eval(open('file1').readline())
並將此行寫入另一個文件,例如:eval(open('file1').readline().write('file2'))
但這顯然不起作用,因爲在寫入之前必須打開file2
。是否有可能連接python eval()中的幾個命令?
那麼是否可以連接命令eval()
?
感謝
我想eval(open('file1').readline())
並將此行寫入另一個文件,例如:eval(open('file1').readline().write('file2'))
但這顯然不起作用,因爲在寫入之前必須打開file2
。是否有可能連接python eval()中的幾個命令?
那麼是否可以連接命令eval()
?
感謝
可以嵌套eval
表達你裏面另一個函數調用,將其結果到另一文件:
open('file2', 'w').write(eval(open('file1').readline()))
但它的總體不良作風收拾這麼多的東西到像一條線這個。通常編寫稍微更詳細的代碼更容易理解和調試。例如,如果你從一個函數調用中得到一個異常,很難判斷哪一部分導致了問題。
這裏有一個多語句的版本,我認爲是在幾乎每一個更好的方式:
with open('file1') as file1:
input_line = file1.readline()
output_line = eval(input_line)
with open('file2', 'w') as file2:
file2.write(output_line)
如果你從這個代碼的一部分例外,它會立即明顯這部分原因引起的,因爲單獨的函數調用都在單獨的行上。關閉它打開的文件也更好,使用with
語句在文件不需要時(每個縮進塊的結尾)立即執行。單行版本依靠Python垃圾收集器關閉文件,這可能需要比預期更長的時間。
你想把'eval()'的結果保存在第二個文件中嗎? –
你爲什麼要''評估'write'的返回值?我想你想對你讀的那行進行評估,但是你應該這樣做,並且在你評估過該行後寫文件。 – trincot