簡體   English   中英

Openpyxl:當打開 function 運行時,會自動調用 load_workbook function

[英]Openpyxl : the load_workbook function was automatically called when the open function run

代碼如下

from openpyxl import *
wb = load_workbook(r'./test.xlsx')
ws = wb.active
ws1 = wb.create_sheet("Mysheet")
ws.delete_cols(2)
wb.save('./test.xlsx')
tagui_output = open('C:/Downloads/TagUI_Windows/tagui/src/tagui_py/tagui_py.txt','w')
tagui_output.write(temp_result)
tagui_output.close()

output的代碼如下

C:\Downloads\TagUI_Windows\tagui\flows\samples> python .\excel2.py
fn of load_workbook = ./test.xlsx
fn of load_workbook = C:/Downloads/TagUI_Windows/tagui/src/tagui_py/tagui_py.txt
Traceback (most recent call last):
  File "C:\Downloads\TagUI_Windows\tagui\flows\samples\excel2.py", line 7, in <module>
    tagui_output = open('C:/Downloads/TagUI_Windows/tagui/src/tagui_py/tagui_py.txt','w')
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 316, in load_workbook
    reader = ExcelReader(filename, read_only, keep_vba,
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 94, in _validate_archive
    raise InvalidFileException(msg)
openpyxl.utils.exceptions.InvalidFileException: filename=C:/Downloads/TagUI_Windows/tagui/src/tagui_py/tagui_py.txt openpyxl does not support .txt file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm

似乎 load_workbook function 在 open('C:/Downloads/TagUI_Windows/tagui/src/tagui_py/tagui_py.txt','w') function 運行時被自動調用,為什么會這樣?

你有沖突 python io function open()openpyxl.open

from openpyxl import *正在導入所有隱藏內置open()的函數。 from openpyxl import您使用的有限 function 調用。

此外,使用with open("path/tagui_py.txt", "w") as tagui_output:以獲得更好的文件處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM