小编luo*_* mo的帖子

如何使用“ with open”来比较python中两个文件的不同

我是Python的新手。我想比较两个文件(1.txt和2.txt)。

1.txt的内容:

a
b
c
Run Code Online (Sandbox Code Playgroud)

2.txt的内容:

a
b
c
d
Run Code Online (Sandbox Code Playgroud)

程序代码:

with open("1.txt") as f1:
    with open("2.txt") as f2:
        for line in f2.readlines():
            if line not in f1.readlines():
                print(line)
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,输​​出为:

b

c

d
Run Code Online (Sandbox Code Playgroud)

在我看来,它只应输出字母“ d”(在2.txt中而不是1.txt中)。因此,任何人都可以说出为什么输出如图片所示吗?

然后,我调试程序,并在右上角观察两个变量:“ f1.readlines()”和“ f2.readlines()”。

我在手表窗口的第3行中使用了“ Step Over” ,“ f1.readlines()”和f2.readlines()”仍然为空,我无法理解。

在此处输入图片说明

当我想在第4行使用“ Step Over”时,窗口变为: 在此处输入图片说明

所有可用的商品均不可用

所以,我的问题是:

1为什么我的代码无法工作?

2比较“ 1.txt”和“ 2.txt”的正确代码是什么?

谢谢!

python

-4
推荐指数
1
解决办法
55
查看次数

标签 统计

python ×1