Python - 在单独的单元格中使用制表符分隔的单词保存csv文件

时间:2017-10-23 02:00:21

标签: python csv

我有这个输入文件:

one\tone
two\ttwo
three\tthree

每个单词之间都有一个标签。

我正在尝试将其保存在csv文件中,其中每个单词最终都在自己的单元格中。这是我的代码:

import csv

input = open('input.txt').read()
lines = input.split('\n')

with open('output.csv', 'w') as f:
   writer = csv.writer(f)   
   for line in lines:
     writer.writerow([line])

然而,这两个词最终都出现在同一个单元格中:

enter image description here

如何更改代码,以便每个单词最终都在自己的单元格中?

3 个答案:

答案 0 :(得分:1)

试试这个:

func Test_ChangeUserName_Stores_Changed_User(t *testing.T) {
    u := &user.User{ID: 1, Name: 'Bob'}
    r := mocks.UserRepository{Users: []*user.User{u}}
    err := user.ChangeUserName(1, 'Fred', r)
    // ...
}

答案 1 :(得分:1)

您需要将输入行拆分为一个列表,以便csv.writer()将它们放入单独的列中。尝试:

with open('output.csv', 'w') as f:
   writer = csv.writer(f)   
   for line in lines:
       writer.writerow(line.split('\t'))

答案 2 :(得分:1)

CSV writer library中的writerow方法会获取列列表。

目前,您正在为整个字符串提供第一列的值

 writer.writerow([line])

相反,请尝试按\t分割字符串,从而创建每个单词的列表,并将其提供给库。

writer.writerow(line.split("\t"))