【问题标题】:Getting Python error -->PermissionError: [WinError 32] The process cannot access the file because it is being used by another process出现 Python 错误 --> PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用
【发布时间】:2020-10-31 17:48:38
【问题描述】:

我正在尝试使用 python 从本地路径读取 csv 文件,然后将 csv 文件的记录处理为 json 结构,最后在控制台上打印它们。我已经在 try & except 块中编写了代码。我期望如果在从 csv 文件读取数据时 try 块中发生任何异常,则 except 块应该打印该异常已经发生并且它应该从当前移动 csv 文件文件夹的位置称为错误。但是在通过模拟错误场景进行测试时,它无法移动错误文件夹中的 csv。而是抛出错误:-“PermissionError: [WinError 32] The process cannot access the file because it is being used by another process”。下面是代码:-

try:
   global df
   df = pd.read_csv('CBD_BU_FULL.csv', encoding='UTF-8', dtype=str)
   df = df.assign(FILE_TYPE ='BU')
   data = df.to_json(orient = "records", lines=False).split('\n')
   print(data)

except:
   print("An exception occurred")    
   os.rename('CBD_BU_FULL.csv', '/Errored/CBD_BU_FULL.csv')

【问题讨论】:

  • 在您运行 python 脚本时,是否使用其他编辑器打开了 csv 文件?

标签: python python-3.x pandas pandas-datareader


【解决方案1】:

pd.read_csv 很可能没有正确关闭文件,因为它在读取过程中崩溃,我会尝试自己打开文件,以便在您自己的程序肯定会关闭文件的情况下,这可能会解决您的问题.

import traceback
import pandas as pd
try:
   with open('CBD_BU_FULL.csv', "r") as f:
       df = pd.read_csv(f, encoding='UTF-8', dtype=str)
   df = df.assign(FILE_TYPE ='BU')
   data = df.to_json(orient = "records", lines=False).split('\n')
   print(data)

except:
   traceback.print_exc(1)
   os.rename('CBD_BU_FULL.csv', '/Errored/CBD_BU_FULL.csv')

【讨论】:

    【解决方案2】:

    如果文件正在使用中,则不能使用os.rename。你可以改用shutil.copy

    【讨论】:

    • 我也试过这个:shutil.move('CBD_BU_FULL.csv', '/Errored/CBD_BU_FULL.csv') & 我得到了完全相同的错误
    • 可能shutil.move csnnot 在文件正在使用时使用。你试过shutil.copy吗?
    • 是的,shutil.copy 正在工作......所以这意味着我需要在文件复制发生后删除文件。但我想删除文件也必须先关闭。一旦通过熊猫读取,我如何关闭文件。 @np8
    • 如果文件被另一个进程保留,您不能移动或删除它。如果文件在另一个程序(例如 Excel)中打开,通常会发生这种情况。如果您无法找出正在使用您的文件的进程,只需重新登录/重新启动。在 Windows 上,您可以使用 resmon 检查正在使用该文件的进程(搜索句柄)。
    猜你喜欢
    • 2019-11-26
    • 2015-11-13
    • 2015-01-28
    • 2017-06-02
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2018-10-28
    相关资源
    最近更新 更多