CSV writer在单独的列中显示每个字符

2024-06-08 01:32:30 发布

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

我有一个带坐标和地震震级的.txt文件。我只需要提取其中的3列(纬度、经度和幅度),但是numpy模块中的loadtxt不起作用。我想把txt文件转换成一个csv文件,看看我是否可以提取我需要的数据。。。这是我现在所拥有的。它返回一个.csv文件,每个字符都作为单独的行打印。在

import csv 

s = open('Sismos_24_4_17.txt',"r").read()
print(s)

sc = open('Sismos_24_4_17.csv',"rt")

in_txt = csv.reader(s, delimiter = '\t')

out_csv = csv.writer(open('Sismos_24_4_17.csv',"wt"))

out_csv.writerows([in_txt])

print(sc.read())

以下是.txt文件的几行:

^{pr2}$

下面是我的代码创建的.csv文件的几行:

['L'],['o'],['c'],['a'],['l'],"['', '']",['F'],['e'],['c'],['h'],['a'],"['', '']",['L'],['a'],['t'],['i'],['t'],['u'],['d'],"['', '']","['', '']",['L'],['o'],['n'],['g'],['i'],['t'],['u'],['d'],"['', '']",['P'],['r'],['o'],['f'],['u'],['n'],['d'],['i'],['d'],['a'],['d'],"['', '']",['M'],['a'],['g'],['n'],['i'],['t'],['u'],['d'],"['', '']",['R'],['e'],['f'],['e'],['r'],['e'],['n'],['c'],['i'],['a'],[],['2'],['4'],['/'],['0'],['4'],['/'],['2'],['0'],['1'],['7'],[' '],['2'],['0'],[':'],['5'],['8'],[':'],['0'],['1'],"['', '']",['2'],['4'],['/'],['0'],['4'],['/'],['2'],['0'],['1'],['7'],[' '],['2'],['3'],[':'],['5'],['8'],[':'],['0'],['1']

我怎样才能让它用逗号分隔每个元素呢!在


Tags: 文件csvinnumpytxtreadopenout
2条回答

你应该在csv.reader. 我不知道为什么,但当我第一次通过csv模块阅读文件时,在添加了引用到csv.reader一切都很好

in_txt = csv.reader(s, delimiter = '\t', quoting=csv.QUOTE_NONE)
out_csv = csv.writer(open('Sismos_24_4_17.csv',"wt"), quoting=csv.QUOTE_NONE)

对我有用试试看man page for csv library

你没有像你应该的那样提取前3列。我建议迭代输入中的每一行,并同时写入out文件。您可以使用with...as上下文管理器来简化这一过程。在

with open('Sismos_24_4_17.csv', "rt") as i, open('Sismos_24_4_17_2.csv', "wt") as o:
    r = csv.reader(i, delimiter='\t')
    w = csv.writer(o)
    for row in r:
        w.writerow(row[:3])

更重要的是,您应该将您的输出写入一个单独的文件中,使用不同的名称。在

相关问题 更多 >

    热门问题