我在.txt文件中有大量数据,格式如下:

WOODY, Harlan Fred                 S2c        USN
WOOD, Earl A.                      PVT        USAR
WOOD, Frank                        S2c        USN
WOOD, Harold Baker                 BM2c       USN
WOOD, Horace Van                   S1c        USN
WOOD, Roy Eugene                   F1c        USN
WOOLF, Norman Bragg                CWTP       USN
WORKMAN, Creighton Hale            F1c        USN


我想像这样将其转换为csv格式...

WOODY,Harlan Fred,S2c,USN


我在Python中看到可以使用regex和/或split,但是我需要保留名字和姓氏之间的空格。如您所见,大多数条目之间的空间计数不同,偶尔出现的选项卡也可能会出现(我认为)。

最佳答案

这是一种实现方式-先在逗号上分割,然后在多个空格上分割,以避免分割单个隔开的名称。然后用str.join用逗号将所有项目连接起来:

with open(textfile) as f, open(csvfile, 'w') as fc:
    for line in f:
        first, others = line.split(',')
        row = [first] + [i.strip() for i in others.split('   ') if i]
        fc.write(','.join(row) + '\n')

关于python - 替换过多的空格以格式化CSV,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40557594/

10-10 18:15