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

如何在python(pandas)中获取文件编辑权限,python,pandas,Python,Pandas,我试图通过Pandas使用Python修改Windows上现有的excel文件,但程序给了我一个错误 这是我的简单程序的一个示例: df_read = pd.read_excel("C:\\Users\\77888\\Desktop\\HKR_ОТЧЕТЫ\\Ноябрь 2020\\2020-11-03.xlsx") df = pd.DataFrame({"Время":[1], "Сумма счета":[1], "Ст

我试图通过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中完成]

右键单击并使用管理员权限运行代码。

右键单击并使用管理员权限运行代码。

在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'

#一个简单的pandas/xlsxwriter程序。
C:\jmcnamara>键入pandas_simple.py
作为pd进口熊猫
df=pd.DataFrame({'Data':[10,20,30,20,15,30,45]})
writer=pd.ExcelWriter('pandas\u simple.xlsx',engine='xlsxwriter')
df.to_excel(书写者,工作表名称='Sheet1')
writer.save()
#运行程序。
C:\jmcnamara>python熊猫_simple.py
#在Excel中打开该文件。
C:\jmcnamara>pandas_simple.xlsx
#在文件打开时尝试重新运行程序。
C:\jmcnamara>python熊猫_simple.py
回溯(最近一次呼叫最后一次):
文件“C:\python\xlsxwriter\workbook.py”,第320行,关闭
文件“C:\python\xlsxwriter\workbook.py”,第638行,在\u store\u工作簿中
文件“C:\python\xlsxwriter\workbook.py”,第636行,在\u store\u工作簿中
文件“C:\python\zipfile.py”,第1204行,在\uuu init中__
self.fp=io.open(文件、文件模式)
PermissionError:[Errno 13]权限被拒绝:“pandas\u simple.xlsx”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“pandas_simple.py”,第8行,在
writer.save()
文件“C:\python\site packages\pandas\io\excel.py”,第1732行,保存
return self.book.close()
文件“C:\python\xlsxwriter\workbook.py”,第322行,关闭
xlsxwriter.exceptions.FileCreateError:[Errno 13]权限被拒绝:“pandas\u simple.xlsx”
正如您所看到的,错误与您的类似


如果您没有输出目录的写入权限,也可能出现此警告。通过尝试在目标目录中创建文件,应该可以轻松检查此警告。

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'

#一个简单的pandas/xlsxwriter程序。
C:\jmcnamara>键入pandas_simple.py
作为pd进口熊猫
df=pd.DataFrame({'Data':[10,20,30,20,15,30,45]})
writer=pd.ExcelWriter('pandas\u simple.xlsx',engine='xlsxwriter')
df.to_excel(书写者,工作表名称='Sheet1')
writer.save()
#运行程序。
C:\jmcnamara>python熊猫_simple.py
#在Excel中打开该文件。
C:\jmcnamara>pandas_simple.xlsx
#在文件打开时尝试重新运行程序。
C:\jmcnamara>python熊猫_simple.py
回溯(最近一次呼叫最后一次):
文件“C:\python\xlsxwriter\workbook.py”,第320行,关闭
文件“C:\python\xlsxwriter\workbook.py”,第638行,在\u store\u工作簿中
文件“C:\python\xlsxwriter\workbook.py”,第636行,在\u store\u工作簿中
文件“C:\python\zipfile.py”,第1204行,在\uuu init中__
self.fp=io.open(文件、文件模式)
PermissionError:[Errno 13]权限被拒绝:“pandas\u simple.xlsx”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“pandas_simple.py”,第8行,在
writer.save()
文件“C:\python\site packages\pandas\io\excel.py”,第1732行,保存
return self.book.close()
文件“C:\python\xlsxwriter\workbook.py”,第322行,关闭
xlsxwriter.exceptions.FileCreateError:[Errno 13]权限被拒绝:“pandas\u simple.xlsx”
正如您所看到的,错误与您的类似


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

尝试将模式参数添加到ExcelWriter->
ExcelWriter(路径,引擎='xlsxwriter',模式='a')
现在显示“xlsxwriter不支持追加模式"您是否有权从操作系统编辑该文件?我不确定。现在,该程序不会说明我是否有权限。我试图获得文件夹的权限,但不确定如何正确操作。我是Windows新手右键单击excel文件,打开“属性”对话框,转到“安全”选项卡,您应该会看到用户和具有权限的组。你说程序现在什么也不说,它工作了吗?尝试将模式参数添加到ExcelWriter->
ExcelWriter(路径,引擎='xlsxwriter',模式='a')
现在它说“xlsxwriter不支持附加模式”你有权从操作系统编辑该文件吗?我不确定