【发布时间】:2019-05-14 09:13:01
【问题描述】:
我有几行代码应该将我当前工作目录中的大量 excel 电子表格转换为 csv 文件。
不幸的是,在运行此代码后,我在第 21 行遇到了错误。 什么可能导致此错误? 提前致谢。
python
import os
import csv
import openpyxl
for spreadsheet in os.listdir('.'):
if spreadsheet.endswith('.xlsx'):
wb = openpyxl.load_workbook(spreadsheet)
for sheet_name in wb.get_sheet_names():
sheet = wb.get_sheet_by_name(sheet_name)
csv_file = open(sheet_name + '.csv', 'w', newline='')
csv_writer = csv.writer(csv_file)
for row_num in range(1, sheet.max_row + 1):
row_data = []
for col_num in range(1, sheet.max_column + 1):
row_data.append(sheet.cell(row=row_num, column=col_num).value)
for row in row_data:
csv_writer.writerow(row)
csv_file.close()
我希望已经转换了csv 文件。以下是我得到的。
C:\Users\User\Anaconda3\lib\site-packages\ipykernel_launcher.py:10: DeprecationWarning:调用已弃用的函数 get_sheet_names(使用 wb.sheetnames)。
在我们加载内容时从sys.path 中删除CWD。
C:\Users\User\Anaconda3\lib\site-packages\ipykernel_launcher.py:11: DeprecationWarning:调用已弃用的函数 get_sheet_by_name(使用 wb[工作表名称])。
这是InteractiveShellApp.init_path()添加回来的
Error Traceback (most recent call last) <ipython-input-29-1b50f926f2e2> in <module>()
19
20 for row in row_data:
---> 21 csv_writer.writerow(row)
22 csv_file.close()
Error: iterable expected, not int
【问题讨论】:
标签: python-3.x csv spreadsheet