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

我是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:
        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中的数据更新的某个库没有足够的声誉无法进行升级表决,但是你应该能够在绿色的勾号上打上接受的答案(然后你也会得到一些代表分数……)