Python for跑了一遍循环就报错了,求解!
各位大佬好,本人小白刚入门Python, 想实现文件夹内文件批量转格式,无奈排Bug 能力有限,求助!需求,读取某文件夹下所有文件名称,xlwing读取后转换成xls格式Excel。程序跑了一遍就报错了,文件名末尾还自己添加了.csv,不知道怎么去除。
跑了一遍文件夹内能实现第一个文件转格式成功。请看附图
附上源码:
import xlwings as xwimport time
import pandas as pd
import os
import xlwt
import xlrd
file_dir='C:/Users/ASUS/Desktop/业务报告11.15-11.21'
for root,dirs,files in os.walk(file_dir):
for a in range(0,14):
file_dir = 'C:/Users/ASUS/Desktop/业务报告11.15-11.21'
print('---------------分隔符')
print(a)
print(files)
app=xw.App(visible=False,add_book=False)
workbook=app.books.open(os.path.abspath(files))
sheet=workbook.sheets[0]
workbook.save(r'C:/Users/ASUS/Desktop/处理好的文件/%a.xls' %files)
workbook.close()
app.quit()
time.sleep(5)
ReLoading 发表于 2021-12-13 18:45
那他第一遍跑的时候文件也不是在这个目录里面,第一个文件又能成,这怎么说? 把os.path.abspath(files)换成os.path.join(root, files)试试,os.path.abspath的结果不一定是你想要的:
https://blog.csdn.net/dmt103/article/details/106170431/
LK-Hulk 发表于 2021-12-13 19:04
那他第一遍跑的时候文件也不是在这个目录里面,第一个文件又能成,这怎么说?
保存文件到其他文件夹了,就找不到路了 lies2014 发表于 2021-12-13 19:30
把os.path.abspath(files)换成os.path.join(root, files)试试,os.path.abspath的结果不一定是你想要 ...
或者前面加上os.chdir(r'C:/Users/ASUS/Desktop/业务报告11.15-11.21')应该也可以 luyers 发表于 2021-12-14 07:50
或者前面加上os.chdir(r'C:/Users/ASUS/Desktop/业务报告11.15-11.21')应该也可以
成功了,太感谢了。这段的意思是让程序知道工作路径。真的谢谢
页:
[1]