Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较两个文件中未排序的数字_Python - Fatal编程技术网

Python 比较两个文件中未排序的数字

Python 比较两个文件中未排序的数字,python,Python,我有两个文件,我试图比较两个包含数字的文件 File1: 123 456 789 File2: 234 567 890 34342 我遇到了两个我不知道如何解决的问题。 这是我的代码: import filecmp file1 = open('file1.txt', 'r') file2 = open('file2.txt', 'r') file1Lines = file1.readlines() file2Lines = file2.readlines() matchedList =

我有两个文件,我试图比较两个包含数字的文件

File1:
123
456
789

File2:
234
567
890
34342
我遇到了两个我不知道如何解决的问题。 这是我的代码:

import filecmp

file1 = open('file1.txt', 'r')
file2 = open('file2.txt', 'r')

file1Lines = file1.readlines()
file2Lines = file2.readlines()

matchedList = []
unmatchedList = []

for line in file1Lines:
    for secline in file2Lines:
        if line == secline:
            matchedList.append(line)
        else:
            unmatchedList.append(line)

file1.close()
file2.close()

print(unmatchedList)
我试图在两个文件中的行上迭代,并将匹配的数字(仅一个副本)放入matchedList,将不匹配的内容放入unmatchedlist。 我考虑对file1line中的每一行迭代file2line(这应该不是问题,因为文件相对较小),问题是每当行不匹配时,它只是在不匹配的数组中追加“line”。 这就是我最后得到的:

['123\n', '123\n', '123\n', '123\n', '456\n', '456\n', '456\n', '456\n', '789\n', '789\n', '789\n', '789\n']

我遇到的另一个问题是,如果其中一个文件较长(如文件2),它将不会检查是否匹配,而且我也不知道该数字是否匹配。

这看起来像是为
数据结构精心编制的作业

file1\u contents='''123
456
789'''
文件2_内容=''234
567
123
456
456
234
123
876
890
34342'''
file1=set(file1\u contents.splitlines())
file2=set(file2\u contents.splitlines())
#求公共线的交点
公共=文件1和文件2
#寻找不寻常线的对称差分法
#所有行=文件1+文件2
#所有行-公共=(1中的行,但不在2中)+(2中的行,但不在1中)
不常见=file1^file2
打印('common',common)
打印(“不常见”,不常见)
输出:

common {'123', '456'}
uncommon {'789', '34342', '876', '890', '234', '567'}

如果已经在读取变量的所有行,为什么不在1个Matching循环中执行呢?你的问题没有明确定义。是否要将一个文件中的每一行与另一个文件中的所有其他行进行比较?或者将文件1中的第一行与文件2中的第一行、第二行与第二行进行匹配,依此类推?非常感谢!我根本不使用Python,但我需要用Python编写这个脚本,所以我不得不使用它。你帮了我很多!谢谢