【问题标题】:Trying to open and read a file in python but it creates and opens an empty file尝试在 python 中打开和读取文件,但它创建并打开一个空文件
【发布时间】:2018-11-06 14:27:53
【问题描述】:

我正在尝试使用以下代码在 python 中打开几个 csv 文件:

file= open('file.csv', "r")

contents= file.read()
allLines = file.readlines()
print(contents)
print(allLines)

但所有 python 打印都是“[]”

当我查看我的 python 项目的文件夹时 - 文件在那里但现在是空的 - 出了什么问题?

【问题讨论】:

  • 您的标题具有误导性,您不是在此处创建文件,只是在阅读...
  • 你打开的文件和文件在同一个目录吗?
  • 既然文件现在是空的:你确定你以前没有以写模式打开过文件吗? open('file.csv', 'w')
  • 在使用上面的代码与之交互之前,该文件必须是空的。这段代码不可能覆盖它。
  • 如果您的文件不在项目目录中,那么 Python 会创建一个空文件。如果要在桌面上打开,则需要指定完整路径。

标签: python file csv


【解决方案1】:

关于 python 打印空数组的原因,我假设您只有在打印 allLines 时才会遇到这种情况。当对您打开的文件使用读取操作时,Python 会将读取光标留在文件末尾。我相信如果您使用seek(0),您可以将读取光标返回到文件的开头。即:

file = open('file.csv', 'r')
contents = file.read()
file.seek(0)
allLines = file.readlines()
print(contents)
print(allLines)

【讨论】:

  • 它只能被视为一种解决方法,因为 dist io 通常比内存访问昂贵得多。因此,除非您这样做是为了不将整个文件加载到内存中,否则您应该尝试只从磁盘读取一次。
【解决方案2】:

这似乎很不寻常,因为它只是读取数据,所以它会删除您的数据。您应该尝试提供文件的完整路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2013-09-03
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多