TXT到CSV未正确拆分(Python)

2024-10-06 13:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段代码,它应该将我的txt文件拆分为“带空格的逗号”,如下所示:

Bobo Soso(bobososo), tu tu(tutu), bu bu(bubu)

进入如下所示的csv文件:

Bobo Soso(bobososo)
tu tu(tutu)
bu bu(bubu)

我使用以下代码:

import csv

with open('test1.txt', 'r') as in_file:
    for line in in_file:
          lines = line.split(', ') #for line in stripped if line)
          with open('log.csv', 'w') as out_file:
            writer = csv.writer(out_file)
            writer.writerow('title')
            writer.writerows(lines)

但它像这样奇怪地分开,每个后面都有一个逗号:

B,o,b,o, S,o,s,o,(b,o,b,o,s,o,s,o)
t,u, t,u,(t,u,t,u,)
b,u, b,u,(b,u,b,u)

我做错了什么


Tags: 文件csv代码intxtlinefilewriter
1条回答
网友
1楼 · 发布于 2024-10-06 13:17:17

writerows需要一个iterable行,其中每一行也是iterable。结构通常类似于:

to_write =[
          [row_content1, row_content2, row_content2], #row 1
          [row_content1, row_content2, row_content2], #row 2
          ...
          ]

在本例中,您有一个字符串数组(“行”)。字符串反过来也是一个iterable对象:

for letter in 'I am a test':
   print(letter)
# out:
I
 
a
m
 
a
 
t
e
s
t

上面是你的writerows也在做的事情。要解决这个问题,您可以将每个元素封装在行中,或者自己循环行并调用writerow([line[i]])

然而,使用pandas或类似的库将更具python风格。你会在SO或其他网站上找到大量关于如何在你的案例中实现这一点的说明

相关问题 更多 >