在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')'。 –
完美的作品! –