【问题标题】:Why one thing works and another thing doesn't? [duplicate]为什么一件事有效而另一件事无效? [复制]
【发布时间】:2017-06-19 09:56:44
【问题描述】:

为什么下面的code1有效而code2无效?

代码1:

#Read from a file

readMe = open('WriteToFile.txt', 'r').read() 
print( readMe)

splitMe = readMe.split('\n')

print(splitMe)

代码 2:

#Read from a file

readMe = open('WriteToFile.txt', 'r')
print( readMe.read())

splitMe = readMe.read().split('\n')

print(splitMe)

我得到以下代码 2 的输出:

虽然我希望输出类似于 code1 :

【问题讨论】:

    标签: python python-3.x io


    【解决方案1】:

    一旦你调用read() 来浏览一个文件,文件“指针”(有点像光标)会停留在文件的末尾,再次调用read() 什么都不做,因为你已经在末尾了(并且没有什么可读的)。您需要将指针移动到带有file.seek(0) 的文件的开头。

    但是,最好只读取一次字符串并使用它:

    readMe = open('WriteToFile.txt', 'r')
    content = readMe.read()
    
    print( content)
    
    splitMe = content.split('\n')
    
    print(splitMe)
    

    更好的是使用with 语句,它会自动为您关闭文件:

    with open('WriteToFile.txt', 'r') as file:
        content = file.read()
    print(content)
    lines = content.split('\n')
    print(lines)
    

    不过,如果您的最终目标只是获取线路,您可以使用readlines()

    with open('WriteToFile.txt', 'r') as file:
        lines = file.readlines()
    print(lines)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 2019-01-03
      相关资源
      最近更新 更多