我有一个python脚本,它使用文本文件并操纵文件中的数据并输出到另一个文件.基本上我希望它适用于任何文本文件输入.现在我从文件中读取,然后将输出打印到屏幕.我想要输出文件.
因此,用户可以键入以下内容并测试任何文件:
cat input_file.txt | python script.py > output_file.txt.
Run Code Online (Sandbox Code Playgroud)
如何在我的脚本中实现这一点?谢谢.
cat是linux中的命令.我不知道它是如何工作的.
小智 33
执行此操作的最佳方法可能是将输入和输出文件作为python脚本的参数调用:
import sys
inFile = sys.argv[1]
outFile = sys.argv[2]
Run Code Online (Sandbox Code Playgroud)
然后,您可以读入所有数据,进行操作,并写出结果:
with open(inFile,'r') as i:
lines = i.readlines()
processedLines = manipulateData(lines)
with open(outFile,'w') as o:
for line in processedLines:
o.write(line)
Run Code Online (Sandbox Code Playgroud)
您可以通过运行来调用此程序 python script.py input_file.txt output_file.txt
如果你绝对必须将数据传递给python(实际上不推荐),请使用 sys.stdin.readlines()
此方法(您的问题)描述了从 STDIN 读取数据:
cat input_file.txt | python script.py
解决方案script.py::
import sys
for line in sys.stdin:
print line
Run Code Online (Sandbox Code Playgroud)
上述解决方案中的方法描述了使用 python 调用获取参数参数:
python script.py input_file.txt
解决方案script.py::
import sys
with open(sys.argv[1], 'r') as file:
for line in file:
print line
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
54872 次 |
| 最近记录: |