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

此外,您应该将输出写入一个单独的文件,并使用不同的名称。

关于python - CSV 编写器在单独的列中显示每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515954/

相关文章:

python-3.x - 为什么 xgboost 在使用整个数据集时对特征产生相同的预测和 nan 值?

csv - 将未发布的Google电子表格下载为CSV

python - 无法在 MacOS 上安装 pyicu

python - matplotlib 或其他 python 包中的 3D 饼图

python - 使用 pycurl 发布文件并传递参数

python - 使用 ModelForm Django 时出现 ValidationError

python - tkinter:将多个按钮 lambda 映射到一个标签?

python - 转换元组列表,使 [(a,b,c)] 转换为 [(a,b),(a,c)]

vb.net - 在VB.net中将csv数据转换为DataTable

java - 当末尾的行不属于 .csv 数据的一部分时,Univocity 解析器如何正确读取 .csv 文件的数据?