如何使用 python 将固定宽度的 txt 文件转换为 csv?

tal*_*l00 5 python csv text-files

我在网上搜索,但找不到我的问题的答案。我需要将 txt 文件转换为 csv 文件。我已经弄清楚如何使用分隔符执行此操作,但是,txt 文件没有任何分隔符或标题,因此我必须设置固定宽度的数字。该文件有数百万条记录。列的宽度为 10、60、60、60、30、2、3、6、9、5、6、12、12、5、3、12、12、5、3。

我的两个挑战是: 1. 将文件转换为具有上面列出的固定宽度的 csv。2. 插入标题。

数据看起来像这样:

0000000626ISOCKE BBBB ZZZZZ TW 达特茅斯 10 FDSAF DR 达特茅斯 CASN 7H44DR SAAB -11.111111 22.2222222 000 -33.333333 44.4444444 000
0000000627ISOCKE FFFF TTTTT TW 哈利法克斯 3367 FDSAF RD 哈利法克斯 CASN 8C5ASE SAAB -55.555555 66.6666666 000 -77.777777 88.8888888 000
0000000628ISOCKE RE 夏洛特敦 449 UYRNT ECSARW RD 夏洛特敦角 CSE8HR SAAB -99.999999 11.1111111 000 -22.222222 33.3333333 000

同样,我所能做的就是使用以下代码将文件转换为 csv,但格式不正确:

import csv
rf = open(r'C:\Users\...New Folder\practice.txt', 'r') #input file handle
wf = open(r'C:\Users\...New Folder\Book1.csv','w') #output file handle
writer = csv.writer(wf)

for row in rf.readlines():
    writer.writerow(row.split())
rf.close() # close input file handle
wf.close() # close output file handle
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 5

用于struct将每个固定宽度的行撕开,并在适当的地方进行修剪。