代码之家  ›  专栏  ›  技术社区  ›  swifty

pandas-快速读/写同一csv。获取权限错误

  •  0
  • swifty  · 技术社区  · 6 年前

    我有一个脚本,我试图每2秒执行一次。开始读 .csv 具有 pd.read_csv . 然后对df执行修改,最后覆盖原始的 猪瘟病毒 具有 to_csv .

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

    • 有什么建议可以避免这种情况?
    • 不确定是否相关,但文件存储在一个驱动器文件夹中。
    • 它确实有时会存钱,看起来是随机的。
    • 增加超时使脚本执行速度变慢有帮助,但我希望它运行得快!

    谢谢

    2 回复  |  直到 6 年前
        1
  •  2
  •   sudonym    6 年前

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

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

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

    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
    
        2
  •  -1
  •   Madhur Yadav    6 年前

    关闭要读写的文件,然后尝试运行脚本。 希望有帮助