【发布时间】:2020-07-15 17:43:15
【问题描述】:
我是 python 的初学者,正在尝试编写一个脚本,在其中比较文本文件的行并打印唯一的行。 这是输入文件。 (我想比较(,)后面的数值后的每一行)
Hello world! 'I like scripting', 1: I am learning python.
Hello world! 'I like scripting', 1: I am learning perl.
Hello world! 'I like scripting', 1: I am learning both perl and python.
Hello all! 'I like scripting', 3: I am learning python.
Hello everyone! 'I like scripting', 5: I am learning perl.
Hai! 'I do not like scripting', 2: I am not learning either python or perl.
我正在尝试打印第 1 行(因为“Hello world!'我喜欢脚本'”涵盖了三种可能的情况,所以我只想打印一次)和第 6 行(因为它根本不重复,所以我想打印第 6 行)
应该打印(应该是输出文件)
Hello world! I like scripting 1
Hai! I do not like scripting 2
我的工作还处于起步阶段
with open ('input.txt') as input, open ('output.txt', 'w') as output:
for line in input:
new_line = line.strip(', ')
我打开输入文件并尝试在 (, ) 之后剥离每一行以比较每一行。 我被困在这里。任何帮助将不胜感激。
【问题讨论】:
-
您要比较的内容尚不清楚。您的第一个示例的输出是什么?
-
@zezollo 应该是:世界你好!我喜欢编写脚本 1 Hai!我不喜欢脚本 2
-
好的,因此删除第 1 行和第 4 行,因为它们都以
I am learning python.结尾,而第 2 和 5 行也被删除,因为它们都以I am learning perl.结尾。所以只剩下第 3 行和第 6 行,然后打印它们的开始。好的,所以,首先,你可能不想strip(),而是split()每行。可能有更有效的方法来实现您想做的事情,但如果您正在学习,也许您还不想了解它们。 -
另一个提示:不要使用
input作为变量,因为它是python 关键字。 -
如果您确定每行两部分之间的分隔符始终是分号,您可以执行类似
line_start, line_end = line.split(':')
标签: python-3.x