Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CSV writer在单独的列中显示每个字符_Python_Python 3.x_Csv - Fatal编程技术网

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

Python CSV writer在单独的列中显示每个字符,python,python-3.x,csv,Python,Python 3.x,Csv,我有一个带有坐标和地震震级的.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.r

我有一个带有坐标和地震震级的.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文件的几行:

Local   Fecha   Latitud     Longitud    Profundidad Magnitud    Referencia
24/04/2017 20:58:01 24/04/2017 23:58:01 -33.307     -71.769     20.6    4.3 Ml GUC  19 km al NO de El Tabo
24/04/2017 20:54:45 24/04/2017 23:54:45 -33.292     -71.934     28.4    4.6 Mw GUC  31 km al NO de El Tabo
24/04/2017 20:47:29 24/04/2017 23:47:29 -32.985     -72.008     25.8    3.2 Ml GUC  37 km al O de Valparaíso
下面是代码创建的.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']

如何让它用逗号分隔每个元素

您没有像应该的那样提取前3列。我建议迭代输入中的每一行,同时写入输出文件。您可以将
与…作为上下文管理器一起使用,以简化此操作

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])

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

您应该将引用添加到csv.reader中。我不知道为什么,但当我第一次通过csv模块读取文件时,在将引用添加到csv阅读器后,我也发生了同样的情况。一切都很好

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)

为我工作尝试试用它检查

如果您的问题得到了回答,请。