如何在python(pandas)中获取文件编辑权限

2024-04-18 06:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过Pandas使用Python修改Windows上现有的excel文件,但程序给了我一个错误

这是我的简单程序的一个示例:

df_read = pd.read_excel("C:\\Users\\77888\\Desktop\\HKR_ОТЧЕТЫ\\Ноябрь 2020\\2020-11-03.xlsx")
df = pd.DataFrame({"Время":[1], "Сумма счета":[1], "Столы":[1], "Заказ":[1]})
df = df.append({"Время":1, "Сумма счета":1, "Столы":1, "Заказ":1}, ignore_index = True)

path = "C:\\Users\\77888\\Desktop\\HKR_ОТЧЕТЫ\\Ноябрь 2020\\2020-11-03.xlsx"
assert os.path.isfile(path)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
writer.save()

以下是错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\77888\AppData\Local\Programs\Python39\lib\site packages\xlsxwriter\workbook.py”,第320行,关闭 自存储工作簿() 文件“C:\Users\77888\AppData\Local\Programs\Python\39\lib\site packages\xlsxwriter\workbook.py”,第638行,在“存储”工作簿中 提高e 文件“C:\Users\77888\AppData\Local\Programs\Python\39\lib\site packages\xlsxwriter\workbook.py”,第635行,在“存储”工作簿中 xlsx_file=ZipFile(self.filename,“w”,compression=ZIP_DEFLATED, 文件“C:\Users\77888\AppData\Local\Programs\Python\Python39\lib\zipfile.py”,第1239行,在init中 self.fp=io.open(文件、文件模式) PermissionError:[Errno 13]权限被拒绝:“C:\Users\77888\Desktop\HKRббббб2020\2020-11-03.xlsx”

在处理上述异常期间,发生了另一个异常:

回溯(最近一次呼叫最后一次): 文件“C:\Users\77888\Desktop\HKR拞Ч拞拞拞拞拞\check.pu”,第12行,在 writer.save() 文件“C:\Users\77888\AppData\Local\Programs\Python\Python39\lib\site packages\pandas\io\excel\u xlsxwriter.py”,第193行,保存 return self.book.close() 文件“C:\Users\77888\AppData\Local\Programs\Python39\lib\site packages\xlsxwriter\workbook.py”,第322行,关闭 引发FileCreateError(e) xlsxwriter.exceptions.FileCreateError:[Errno 13]权限被拒绝:“C:\Users\77888\Desktop\HKR拞拞拞拞拞2020\2020-11-03.xlsx” [以1.531s完成]


Tags: 文件pathpydflibpackageslocalsite
2条回答

Windows上出现此问题的最常见原因是正在创建的xlsx文件已在Excel中打开。例如:

# A simple pandas/xlsxwriter program.
C:\jmcnamara>type pandas_simple.py
import pandas as pd

df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

# Run the program.
C:\jmcnamara>python pandas_simple.py

# Open the file in Excel.
C:\jmcnamara>pandas_simple.xlsx

# Try to rerun the program while the file is open.
C:\jmcnamara>python pandas_simple.py
Traceback (most recent call last):
  File "C:\python\xlsxwriter\workbook.py", line 320, in close
  File "C:\python\xlsxwriter\workbook.py", line 638, in _store_workbook
  File "C:\python\xlsxwriter\workbook.py", line 636, in _store_workbook
  File "C:\python\zipfile.py", line 1204, in __init__
    self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: 'pandas_simple.xlsx'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "pandas_simple.py", line 8, in <module>
    writer.save()
  File "C:\python\site-packages\pandas\io\excel.py", line 1732, in save
    return self.book.close()
  File "C:\python\xlsxwriter\workbook.py", line 322, in close
xlsxwriter.exceptions.FileCreateError: [Errno 13] Permission denied: 'pandas_simple.xlsx'

正如您所看到的,错误与您的类似

如果您没有输出目录的写入权限,也可能发生此警告。通过尝试在目标目录中创建一个文件,这应该很容易检查

右键单击并运行具有管理员权限的代码

相关问题 更多 >