Python 如何将某个文件中的所有行与另一行进行比较?
我是Python新手,需要一些帮助 我有一个包含Python 如何将某个文件中的所有行与另一行进行比较?,python,Python,我是Python新手,需要一些帮助 我有一个包含x行数的文件。我想将该文件的每一行与另一行进行比较,如果它们不同,则将该行写入该文件 我寻找答案,但没有找到任何我能用的。我自己也试过,但没用 我的代码: filename = ... my_file = open(filename, 'r+') for line in my_file: new_line = ("text") print line print new_line if new_line == line
x
行数的文件。我想将该文件的每一行与另一行进行比较,如果它们不同,则将该行写入该文件
我寻找答案,但没有找到任何我能用的。我自己也试过,但没用
我的代码:
filename = ...
my_file = open(filename, 'r+')
for line in my_file:
new_line = ("text")
print line
print new_line
if new_line == line:
print('same')
else:
print('diffrent')
my_file.write('%s' % (new_line))
我只希望我的应用程序在文件中不存在行的情况下将行写入文件
contents of filename
====================
text
text1
text2
在上面的情况下,新行是“text”,应用程序不应该做任何事情,因为该行已经存在于文件中。但是,如果新行为“text3”,则应按如下方式将其写入文件:
contents of filename
====================
text
text1
text2
text3
new = [line for line in new_lines if line not in existing_lines]
我建议您创建一个新文件,并将差异写入新文件,而不是编辑
file2.txt
with open("file1.txt", "r") as first_file, open("file2.txt", "r") as second_file:
file1 = first_file.readlines()
file2 = second_file.readlines()
length = min(len(file1), len(file2))
for i in xrange(length):
if file1[i].strip() != file2[i].strip():
#Do something here
首先,让我们读取文件的内容,以便检查新行是否已经在其中
existing_lines = [line.rstrip('\n') for line in open(filename, 'r')]
假设您有一个名为new\u lines
的单独列表,其中包含要对照文件检查的所有行。然后,您可以检查哪些是新的,如下所示:
contents of filename
====================
text
text1
text2
text3
new = [line for line in new_lines if line not in existing_lines]
以下是要附加到现有文件中的行:
with open(filename, 'a') as f:
[f.write(line + '\n') for line in new]
把那一行写进那个文件???你能更具体一点吗?你能给出一个例子,以及你在运行代码之前和之后期望的文件内容吗?我更新了我在UNIX系统中的问题,这将是不同的。你确定你关心位置吗?例如,文件1的内容为1,2,4,5,与文件2的内容为1,2,5,4或
zip
的内容不一样。该代码有效,但我需要将其写入文件2中,这就像需要使用文件1中的数据更新的某个库没有足够的声誉无法进行升级表决,但是你应该能够在绿色的勾号上打上接受的答案(然后你也会得到一些代表分数……)