我有一个小问题,可以帮助一下。 在运行的程序中,我需要在Excel 2010中导入.txt文件,并用';'分隔。在1列中。到目前为止,每次我打开生成的CSV文件时,无论我尝试使用哪种语法,Excel都会在单独的列中对数据进行排序。
有人遇到过这个问题并找到了解决方案吗?
非常感谢您的帮助!
谢谢。
答案 0 :(得分:0)
这是到目前为止的代码:
import os
import csv
os.chdir(r'C:\Users\Contractuel\Desktop\Test')
with open('Setback.txt', 'r') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split(";") for line in stripped if line)
with open('TESTS.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(lines)
但是,我最终得到了这个消息:
,我需要这样的东西:
答案 1 :(得分:0)
我想你想要这样的东西。
import glob
import csv
import xlwt
for filename in glob.glob("C:\\your_path\\*.txt"):
spamReader = csv.reader((open(filename, 'rb')), delimiter='|',quotechar='"')
encoding = 'latin1'
wb = xlwt.Workbook(encoding=encoding)
sheet=xlwt.Workbook()
sheet = wb.add_sheet('sheet 1')
newName = filename
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
sheet.write(rowx, colx, value)
wb.save(newName.replace('.txt','.xls'))
或者,这个。
import glob
import csv
from xlsxwriter import Workbook
for filename in glob.glob("C:\\your_path\\*.txt"):
spamReader = csv.reader((open(filename, 'rb')),
delimiter='|', quotechar='"')
newName = filename.replace('.txt', '.xlsx')
workbook = Workbook(newName, {'strings_to_numbers': True})
worksheet = workbook.add_worksheet()
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
worksheet.write(rowx, colx, value)
workbook.close()
print "Done"