首页 > 解决方案 > 输入被删除时如何读取行

问题描述

所以在我的linux终端中我输入python3 main.py input.txt > output.txt

input.txt 包含:

This is line 1
This is line 2
This is another line

如何逐行浏览并打印出每一行,以便我output.txt看起来像下面的输出?本质上,我只是在问我如何逐行阅读?我不能使用fopen,因为我正在input.txt像我的标准输入一样制作

This is line 1
---
This is line 2
---
This is another line
---

我的问题与其他问题不同,因为这里我没有使用open(). 我将标准输入输入为input.txt. 正如您在命令中看到的那样input.txt > output.txt。所以我不能使用open。

标签: pythonpython-3.xfor-loop

解决方案


使用此命令行,python3 main.py input.txt > output.txt这将执行您想要的操作:

import sys

for line in open(sys.argv[1]):
    print(line.rstrip('\n'))
    print('---')

但是,您的 shell 语法很混乱。您希望input.txt连接到标准输入,但会这样写python3 main.py < input.txt > output.txt(注意小于号<)。然后你main.py会看起来像这样:

import fileinput

for line in fileinput.input():
    print(line.rstrip('\n'))
    print('---')

在这里,我fileinput用来遍历标准输入的每一行。

顺便说一句,fileinput可以从中获取文件名列表sys.argv,因此这也适用于命令行python3 main.py input.txt > output.txt


推荐阅读