比较文件和列表,看看它们是否相同

问题描述:

我有一个包含数字1-100和相同数字的列表的文件。我在比较它们并检查它们是否相同时遇到了一些问题。 这是我到目前为止的代码:比较文件和列表,看看它们是否相同

f = open("tall.txt", "w") 

for i in range(101): 
f.write(str(i) + "," + " ") 

f.close() 


with open('tall.txt') as a: 
    lines = a.read().splitlines() 

tall = [] 

for i in range(101): 
    tall.append(i) 

for (i,t) in zip(lines,tall): 
    if i != t: 
     print("Does not match") 
     break 
#else: 
    print("Match") 
    break 

我有这么远的问题是,如果我打印的行会启动与[“结尾是”],因此不匹配其他列表。

我该如何解决这个问题?这是一个更简单的方法来完成整个过程?

谢谢。

+0

值的顺序是否重要?例如'[1,2]'和'[2,1]'是一样的吗?如果没关系,为什么不直接做一个数组交集? –

+0

是的,订单很重要。想要检查他们是否在同一个订单。 – Pontius

splitlines()通过考虑\n或换行符作为分隔符来读取您的python文件。但是在程序的第一步写入的文件在逻辑需要的match之后并不会在每个数字后面有\n。因此,这个问题。

以下修改后的代码正常工作。在写入文件时,我删除了,并将其更改为\n。另外检查条件i!=t应该是i!=str(t)

f=open("tall.txt", "w") 

    for i in range(101): 
     f.write(str(i) + "\n") 

    f.close() 


    with open('tall.txt') as a: 
     lines = a.read().splitlines() 

    tall = [] 

    for i in range(101): 
     tall.append(i) 

    for (i,t) in zip(lines,tall): 
     if i != str(t): 
      print("Does not match") 
      break 
    #else: 
     print("Match") 
     break 
+0

非常感谢。解决了! – Pontius