功能不适用于文件中的空格

时间:2016-03-10 11:33:28

标签: python python-3.x

def square(sq):
    grid = len(sq)
    for line in sq:
        if len(line) != grid:
            raise ValueError


while True:
try: 
    filesname = input("Enter the filename:") + ".txt"
    file = open(filesname,"r")
    readFile = file.readlines()
    file.close()
    thelist = [line.strip() for line in readFile]
    square(thelist)
    print ("File has:")
    print("\n".join(thelist))


except FileNotFoundError: 
    print ("The file name you have entered does not exist. Please try again.")
except ValueError:
    print ("")
    print ("Incorrect file format")
else:
    break

我要打开的文件是:

A B C
B C A
C A B

我想打开文件并检查它是否是正方形网格,然后向用户报告是否存在。正如您所看到的,上面的文件是方格,但是我的程序说它不是。

当我执行此代码时,它会一直说“文件格式不正确”。我认为它与square函数有关,并且它没有考虑字母之间的空格,我不知道如何解决这个问题,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

你有一个类似声音的问题:

>>> "A B C\n".split()
['A', 'B', 'C']
>>> "A B C\n".strip()
'A B C'

换句话说,请使用split(),而不是strip()