我正在尝试将多个.xls文件转换为一个.csv文件,以便我可以在以后的脚本中使用。
我在其他Stackoverflow页面中发现了大部分代码,但在尝试运行下面的代码时出现以下错误:
错误:
Traceback (most recent call last):
File "script_base_teste.py", line 13, in <module>
wr.writerow(sh.row_values(rownum))
TypeError: a bytes-like object is required, not 'str'
代码:
import xlrd
import csv
for num in range(1,4):
wb = xlrd.open_workbook("file"+str(num)+".xls")
sh = wb.sheet_by_name("Sheet 1")
your_csv_file = open("file"+str(num)+".csv", "wb")
wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
for rownum in range(0,sh.nrows):
wr.writerow(sh.row_values(rownum))
your_csv_file.close()
fout=open("result.csv","a")
first file:
for line in open("file1.csv"):
fout.write(line)
now the rest:
for num in range(2,3):
f = open("file"+str(num)+".csv")
f.next() # skip the header
for line in f:
fout.write(line)
f.close()
fout.close()
答案 0 :(得分:0)
您以二进制模式打开文件
your_csv_file = open("file"+str(num)+".csv", "wb")
“wb”代表“写二进制”。 您只能在此模式下读/写二进制数据。 由于您想使用字符串进行编写,因此可以使用“w”而不是“wb”在写入模式下打开它。
your_csv_file = open("file"+str(num)+".csv", "w")