将文本文件转换为csv格式

时间:2014-04-15 19:53:58

标签: python csv if-statement text for-loop

原始文件格式是这样的

ID   DC_trip
AC   A9999
SY   DC,Foggy_bottom,22201,H_St.
SY   DC,Smithsonian,12345,14th_St.
//
ID   ...
AC   ...
SY   ...
SY   ...
SY   ...

我想将其转换为.csv文件格式并将其转换为

DC_trip,A9999,DC,Foggy_bottom,22201,H-ST。
DC_trip,A9999,DC,史密森,12345,14th_St。 。 。

我尝试使用if语句和elif .....

if lines.find('ID'):
   lines[5:]
elif lines.find('SY'):
   lines[5:]

如果我使用这种方式,每次我只能获得一个值。 有人可以给我一些推荐吗? 谢谢

1 个答案:

答案 0 :(得分:0)

假设原始文件中的数据是以制表符分隔的,您可以使用csv模块,并执行以下操作:

data = []
# Extract the second row from the input file
# and store it in data
with open('input') as in_file:
    csv_reader = csv.reader(in_file, delimiter='\t')
    for row in csv_reader:
       data.append(row[1])

# The first two values in data is the suffix
# for the rest of your output file
suffix = ','.join(data[:2])

# Append the suffix to the rest of the values
# and write it out to the output file.
with open('output') as op_file:
    for item in data[2:]:
        op_file.write('{},{}\n'.format(suffix, item))

如果原始文件中的数据由空格分隔,则应将第一部分替换为:

data = []
with open('file1') as in_file:
    for line in in_file:
        data.append(line.strip().split())
data = [a[1] for a in data if a[1]]