我正在一个将.csv文件转换为.xlsx的项目中,我成功实现了代码,但我的要求是立即将目录中的所有.csv文件转换成一个目录,我有点困惑,该怎么办?我这样做 请帮助
我尝试通过给文件提供不同的地址来尝试 但我希望它能循环播放
filename =“ C:\ Python36 \ Form项目\ CI文件\ CCS DATA \ ADD01.csv” filename2 =“ C:\ Python36 \ Form项目\ CI文件\ CCS DATA \ ADD02.csv”
对于glob.glob(os.path.join('。',文件名))中的csvfile:
now = datetime.now().strftime('%d-%m-%y-%H;%M;%S')
workbook = xlsxwriter.Workbook(' '+now+'.xlsx')
worksheet = workbook.add_worksheet()
with open(csvfile, 'rt') as f:
reader = csv.reader(f)
for r,row in enumerate(reader):
print(row)
r=r+11
if r>=12:
break
#sheet.cell_value(0,r)
for c, col in enumerate(row):
c=c+1
worksheet.write(r, c, col)
对于glob.glob(os.path.join('。',filename2))中的csvfile:
#now = datetime.now().strftime('%d-%m-%y-%H;%M;%S')
#workbook = xlsxwriter.Workbook(' '+now+'.xlsx')
#worksheet = workbook.add_worksheet()
with open(csvfile, 'rt') as f:
reader = csv.reader(f)
for r,row in enumerate(reader):
print(row)
r=r+12
if r>=13:
break
我尝试通过给文件提供不同的地址来尝试 但我希望它能循环播放
答案 0 :(得分:0)
这可以为您提供帮助,因为您可以遍历文件夹中的每个文件并检查文件是否以.csv结尾。
import os
INPUT_PATH = "C:\Python36\Form project\CI File\CCS DATA\"
for file in os.listdir(INPUT_PATH):
if file.endswith('.csv') or file.endswith('.CSV'):
INPUT_FILE = INPUT_PATH + file
with open(INPUT_FILE, 'rt') as f:
#your code here
我猜您想将所有.csv数据写入一个.xslx文件吗?否则请添加以下内容:
import os
INPUT_PATH ="C:\Python36\Form project\CI File\CCS DATA\"
for file in os.listdir(INPUT_PATH):
if file.endswith('.csv') or file.endswith('.CSV'):
INPUT_FILE = INPUT_PATH + file
workbook = INPUT_PATH + file[:-4] + 'xlsx'
with open(INPUT_FILE, 'rt') as f:
#your code here
编辑: 提供您的其他信息是另外一种尝试: (您可以共享.csv数据以查看您正在处理什么吗?)
##create .xlsx-file##
now = datetime.now().strftime('%d-%m-%y-%H-%M-%S')
workbook = xlsxwriter.Workbook(directory+now+'.xlsx')
##iterate over .csv-files##
for filename in os.listdir(directory):
if filename.endswith(".csv"):
csvfile = os.path.join(directory, filename)
##add worksheet named as .csv-file##
worksheet = workbook.add_worksheet('{csvfile}'.format(csvfile=filename))
##open and process .csv-file##
with open(csvfile, 'rt') as f:
reader = csv.reader(f)
for r,row in enumerate(reader):
for i in range(59):
r=r+i
if r>=(i+1):
break
for c, col in enumerate(row):
c=c+1
worksheet.write(r, c, col)
##don't forget to close your workbook afterwards##
workbook.close()
答案 1 :(得分:0)
现在,我的代码正在成功运行,但是没有进入我的if循环,并且直接结束而不保存我的文件Pl。忽略缩进
B