我有这个由空格sinheader.txt分隔的txt 。如何创建一个读取此文本的脚本,并使用它编写一个csv文件。
这是我试图实现的脚本:
import csv
import pandas as pd
prueba = open('station.info').readlines()
open('sinheader.txt', 'w').writelines(prueba[4:-1])
with open('sinheader.txt', 'r') as in_file:
lines = (line.split(" ") for line in in_file)
with open('malobueno.txt', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(lines)
这就是我得到的:Bad.txt
答案 0 :(得分:0)
我认为这个问题来自你使用split(“”)。由于名称“AACR”之后有许多空格,因此该函数将其视为多列。
This answer可能会对您有所帮助。 split()函数在没有参数的情况下用于分隔具有任意数量空格的字符串。
我希望它有所帮助。
答案 1 :(得分:0)
在pandas中,您可以在分隔符中使用正则表达式。假设您不介意使用pandas读取文件。
import pandas as pd
filename = 'station.info'
lines = pd.read_csv(filename, sep='[\s]{2,}',header=None)
正则表达式搜索两个或多个空格。因此,只有当输入文件使用两个空格进行分隔且文本字段使用单个空格时,这才有效。
然后,您可以使用 pandas.DataFrame.to_csv 以csv格式保存数据。