在NetBeans
中使用Python並將文件arguments
設置爲input/output
有些麻煩。例如:Python:在NetBeans中傳遞文件作爲輸入
import re, sys
for line in sys.stdin:
for token in re.split("\s+", line.strip()):
print(token)
命令行用法python splitprog.py <input.txt> output.txt
很好用。但是在NetBeans中,輸出窗口只是等待,即使給出一個文件名(測試了很多組合),也不會發生任何事情。
項目屬性中的Application Arguments
行(其中一個可以爲Java項目輸入這些文件)似乎也沒有使用,因爲無論是否存在文件名/路徑,行爲都是相同的。是否有一些技巧可以使其發揮作用,或者在NetBeans中使用Python的文件參數目前無法使用?
ADD:按照建議通過@John Zwinck,一個例子溶液:
import re, sys
with open(sys.argv[1]) as infile:
with open(sys.argv[2], "w") as outfile:
for line in infile:
for token in re.split("\s+", line.strip()):
print(token, file = outfile)
參數文件是在NB項目屬性設置。在命令提示符下,程序現在僅由python splitprog.py input.txt output.txt
運行。
非常豐富,謝謝!我試圖根據您的解決方案編寫代碼,輸出有點意外。我編輯了原始問題;你會介意檢查代碼嗎? –
@Россарх:你曾經使用'print',現在你正在使用'write',它不添加換行符。你可以做'print(token,file = outfile)'或'outfile.write(token +'\ n')'。 –
完美的作品! –