import os
import pandas as pd
import xlrd
import shutil
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
return files #当前路径下所有非目录子文件
#例如D:/jupyter/test/data
path = input('请键入需要整理的文件夹地址:')
sheet_name = input('请键入要复制的sheet表名字:')
m= input('请键入要复制的单元格所在行数:')
n= input('请键入要复制的单元格所在列数:')
files = file_name(path)
result = pd.DataFrame(columns=['file', 'value'])
for i in range(0,len(files)):
data = xlrd.open_workbook(path+'/'+files[i])
print(path+'/'+files[i])
table = data.sheet_by_name(sheet_name)
cell = table.cell(int(m),int(n)).value
result.loc[i] = [files[i], cell]
result.to_csv(path + '/result.txt')
以上代码,只能执行前11个Excel文档,其余的都无法执行,上一下错误的截图
请键入需要整理的文件夹地址:E:\excel
请键入要复制的sheet表名字:Sheet1
请键入要复制的单元格所在行数:0
请键入要复制的单元格所在列数:0
E:\excel/02-01.xls
E:\excel/02-02.xls
E:\excel/02-03.xls
E:\excel/02-04.xls
E:\excel/02-05.xls
E:\excel/02-06.xls
E:\excel/02-07.xls
E:\excel/02-08.xls
E:\excel/02-09.xls
E:\excel/02-10.xls
E:\excel/02-11.xls
Traceback (most recent call last):
File "C:\Users\love3\Desktop\123.py", line 22, in <module>
data = xlrd.open_workbook(path+'/'+files[i])
File "E:\Python\lib\site-packages\xlrd\__init__.py", line 157, in open_workbook
ragged_rows=ragged_rows,
File "E:\Python\lib\site-packages\xlrd\book.py", line 117, in open_workbook_xls
bk.parse_globals()
File "E:\Python\lib\site-packages\xlrd\book.py", line 1209, in parse_globals
self.handle_format(data)
File "E:\Python\lib\site-packages\xlrd\formatting.py", line 538, in handle_format
unistrg = unpack_unicode(data, 2)
File "E:\Python\lib\site-packages\xlrd\biffh.py", line 284, in unpack_unicode
strg = unicode(rawstrg, 'utf_16_le')
File "E:\Python\lib\site-packages\xlrd\timemachine.py", line 31, in <lambda>
unicode = lambda b, enc: b.decode(enc)
File "E:\Python\lib\encodings\utf_16_le.py", line 16, in decode
return codecs.utf_16_le_decode(input, errors, True)
UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 6-7: unexpected end of data
此行代码的出处忘记了,中间也自己做个修改,但还是不管用,也加入了UTF-8或16的代码,
非自行码出来的。
望大佬解答~