熊猫 - 快速读取/写入相同的csv ..获取权限错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫 - 快速读取/写入相同的csv ..获取权限错误相关的知识,希望对你有一定的参考价值。

我有一个脚本,我试图每2秒执行..开始它与.csv读取pd.read_csv。然后对df执行修改,最后用.csv覆盖原始的to_csv

我遇到了PermissionError: [Errno 13] Permission denied:,从我的搜索开始,我认为这是因为我试图打开/写入同一个文件,尽管我可能是错的。

  • 任何建议如何避免这种情况?
  • 不确定是否相关但文件存储在单驱动器文件夹中。
  • 它偶尔会保存,看似随机。
  • 增加超时以使脚本执行得更慢有帮助,但我希望它运行得更快!

谢谢

答案

由于您没有共享确切的代码,我们只能假设您存储数据帧如下:

df.to_csv("myfile.csv", sep = ",", index = False)    # Drop to csv w/o context manager

在这种情况下,您遇到的行为是由于文件没有正确关闭。这是一个常见的错误。我建议使用with-statement,其主要用途是对内部使用的对象(在本例中为.csv)进行异常安全清理。换句话说,with确保文件关闭,锁定释放,上下文恢复等。

with open("myfile.csv", "w") as reference:           # Drop to csv w/ context manager
     df.to_csv(reference, sep = ",", index = False)
# As soon as you are here, reference is closed
另一答案

关闭您尝试读取和写入的文件,然后尝试运行脚本。希望能帮助到你

以上是关于熊猫 - 快速读取/写入相同的csv ..获取权限错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中读取带有分号分隔符的文件

float64 与熊猫 to_csv

熊猫将数据框列写入 csv

为啥熊猫在写入 csv 时会删除前导零?

使用存储过程从 sql server 快速读取百万条记录,并使用 java 和 spring boot 将其写入 csv

合并具有不同列名但定义相同的多个CSV