两个或多个空格分隔符python

时间:2017-09-29 18:27:00

标签: python

我有这个由空格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

2 个答案:

答案 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格式保存数据。