用逗号或制表符替换#的列分隔

时间:2014-04-29 09:00:19

标签: python tabs comma separator

这个问题可能非常简单容易。 我的数据文件的列用#而不是制表符或逗号分隔。 如:     123#142#5#98#......

在这种格式中,当我尝试读取某一行中某列的值时,似乎无法读取123或142的整数值。

您是否有任何想法可以解决此问题,例如将#更改为真正的分隔,例如制表符还是逗号?

我真的很感激任何帮助或想法。

谢谢你, 艾萨克

2 个答案:

答案 0 :(得分:4)

阅读时,您可以使用csv.reader()这样的delimiter参数:

>>> with open(your_file, "r") as f:
...    data = [x for x in csv.reader(f, delimiter='#')]
...
>>>

当你正在写作时,csv.writer()接受相同的参数..

>>> with open("foo.txt", "w") as f:
...    w = csv.writer(f, delimiter=',')
...    w.writerows(data)
...
>>>

以下是一个组合示例:

>>> with open("test.csv", "r") as inp, open("foo.csv", "w") as out:
...     w = csv.writer(out, delimiter=",")
...     w.writerows(x for x in csv.reader(inp, delimiter="#"))
...
>>>

test.csv的内容:

123#142#5#98
foo#bar#baz#baf

foo.csv的内容:

123,142,5,98
foo,bar,baz,baf

答案 1 :(得分:1)

你有数据

    data ='123#142#5#98#1234'
    data_list=data.split('#')

    for each_element in data_list:
           print each_element
相关问题