tuple()不能完全使用python中的文件

时间:2015-05-20 13:10:14

标签: python tuples

所以我试图将文件中存在的所有行复制到列表中。从前面的问题我发现了这种将所有行复制到列表中的方法。我面临的问题是并非文件的所有内容都被复制到列表中。

names = tuple(open("MusicNames.txt", 'r'))
names2 = tuple(open("MusicNamesOtherFolder.txt", 'r'))
print names
print names2

这就是我要复制名称的方法,但在特定行之后,列表会停止追加,列表中的最后一项不包含整行。 什么可能导致这样的错误?

好的,我现在要包括我的完整代码。当我注释掉我写入文件的代码部分时,它正常工作。 这是代码: http://pastebin.com/Q7W3VXPi

2 个答案:

答案 0 :(得分:3)

完成写入后,应关闭文件对象。否则,您在读取所有更改时可能无法将所有更改刷新到实际文件中。

fp2 = open("MusicNamesOtherFolder.txt", 'w')

#writing to fp2 goes here...

fp2.close()

#now you are ready to open the file again.
names2 = tuple(open("MusicNamesOtherFolder.txt", 'r'))

如果您发现同时编写openclose方法很麻烦,可以使用with语句,这将为您完成结算。

with open("MusicNamesOtherFolder.txt", 'w') as fp2:
    #writing to fp2 goes here....

#now you are ready to open the file again.
names2 = tuple(open("MusicNamesOtherFolder.txt", 'r'))

答案 1 :(得分:0)

您可以使用它来获取完整的行列表

 names = [line for line in open("MusicNames.txt", 'r')]
 names2 = [line for line in open("MusicNamesOtherFolder.txt", 'r')]