Python 如何在输入时读取行
因此,在我的linux终端中,我键入Python 如何在输入时读取行,python,python-3.x,for-loop,Python,Python 3.x,For Loop,因此,在我的linux终端中,我键入python3main.py input.txt>output.txt input.txt包含: This is line 1 This is line 2 This is another line 如何逐行检查并打印出每一行,使我的output.txt看起来像下面的输出?从本质上说,我只是想问,我是如何逐行阅读的?我无法使用fopen,因为我正在制作类似stdin的input.txt This is line 1 --- This is line 2 --
python3main.py input.txt>output.txt
input.txt包含:
This is line 1
This is line 2
This is another line
如何逐行检查并打印出每一行,使我的output.txt
看起来像下面的输出?从本质上说,我只是想问,我是如何逐行阅读的?我无法使用fopen
,因为我正在制作类似stdin的input.txt
This is line 1
---
This is line 2
---
This is another line
---
我的问题与其他问题不同,因为这里我没有使用
open()
打开文件。我正在以input.txt
的形式输入标准输入。正如您在命令input.txt>output.txt
中所看到的那样。因此,我无法使用open。通过此命令行,python3 main.py input.txt>output.txt,这将执行您想要的操作:
import sys
for line in open(sys.argv[1]):
print(line.rstrip('\n'))
print('---')
但是,您的shell语法很混乱。您希望input.txt
连接到stdin,但这将被写入python3 main.pyoutput.txt
(请注意,我看到您的编辑中可能有小于号的的副本,但您感到困惑。input.txt
是一个参数。output.txt
连接到stdout。如果您想将input.txt
连接到stdin,您可以编写
@wjandrea不,您没有收到作为参数的文件。I无法使用sys.argv
,因为我的命令是python3 main.py input.txt>output.txt
。请注意command@wjandrea当我使用sys.argv
时,它里面没有input.txt
。它只有main.py
和你给出的命令行,sys.argv
将是['main.py','input.txt']
。
import fileinput
for line in fileinput.input():
print(line.rstrip('\n'))
print('---')