我有 2 個名為Excel和的檔案夾CSV。Excel 檔案夾包含前綴為“_Updated”的 excel 檔案,我想將其轉換為 UTF-8 編碼的 CSV,如果檔案包含多個作業表,則將csv基于作業表創建新檔案。但是,當我運行下面的代碼時,我收到 PermissionError 如下所示,不確定下面的代碼有什么問題?
在此先感謝您的時間!
代碼:
from pathlib import Path
import openpyxl
from openpyxl import load_workbook
CSV_FILE_PATH='/Excel'
CSV_FILE_SAVE='/CSV'
for file in Path(CSV_FILE_PATH).glob('*_Updated.xlsx'):
wb = load_workbook(file)
print(file, wb.active.title)
for sheetname in wb.sheetnames:
with open(CSV_FILE_PATH, 'r ') as f_in, open(CSV_FILE_SAVE, 'w',encoding="utf-8") as f_out:
content = f_in.read()
spamwriter=csv.writer(f_out)
for row in wb[sheetname].rows:
spamwriter.writerow([cell.value for cell in row])
錯誤:
PermissionError Traceback (most recent call last)
<ipython-input-6-2ef7cc7706ca> in <module>
10 print(file, wb.active.title)
11 for sheetname in wb.sheetnames:
---> 12 with open(CSV_FILE_PATH, 'r ') as f_in, open(CSV_FILE_SAVE, 'w',encoding="utf-8") as f_out:
13 content = f_in.read()
14 spamwriter=csv.writer(f_out)
PermissionError: [Errno 13] Permission denied: '/Excel'
uj5u.com熱心網友回復:
您收到一個PermissionDenied錯誤,因為您試圖打開一個目錄進行讀取,就好像它是一個檔案一樣。如果您嘗試對目錄進行檔案操作,您將在 Windows 上收到此錯誤。
這是您嘗試讀取目錄的地方,在您的情況下,目錄/Excel:
with open(CSV_FILE_PATH, 'r ') as f_in, ... :
f_in稍后在該行中使用content = f_in.read()。但是,你沒有content在任何地方使用,所以我建議你去掉它,因為你也可以去掉open(CSV_FILE_PATH, 'r ') as f_in上面那行的一部分。那應該可以解決您的問題:
with open(CSV_FILE_SAVE, 'w',encoding="utf-8") as f_out:
spamwriter=csv.writer(f_out)
for row in wb[sheetname].rows:
spamwriter.writerow([cell.value for cell in row])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/487945.html
標籤:Python python-3.x 擅长 CSV
上一篇:從位于檔案夾中的所有csv檔案(8000個檔案)中復制第二行,并將其保存在新的csv檔案中,包括標題
下一篇:在python中處理HTML
