我正在读取一个列数可变的文件,比如3个固定列+未知/可变列数:
21 48 77
15 33 15 K12
78 91 17
64 58 24 R4 C16 R8
12 45 78 Y66
87 24 25
10 33 75
18 19 64 CF D93
我想将前三个列条目存储在特定的列表/数组中,因为我需要使用它们,同时将所有剩余部分(从列[2]到行尾)放在另一个单行中字符串,因为我不需要对它采取行动,只是为了复制它。
我写道:
import os, sys
import numpy as np
fi = open("input.dat", "r")
fo = open("output.dat", "w")
for line in fi:
line = line.strip()
columns = line.split()
A00 = str(columns[0])
A01 = str(columns[1])
A02 = str(columns[2])
A03 = EVERTHING ELSE UNTIL END OF LINE
有一种简单的方法吗?提前谢谢。
答案 0 :(得分:1)
您可以使用此代码:
import os, sys
import numpy as np
fi = open("input.dat", "r")
fo = open("output.dat", "w")
column_3 = []
for line in fi:
line = line.strip()
columns = line.split()
A00 = str(columns[0])
A01 = str(columns[1])
A02 = str(columns[2])
column_3.append(str(columns[3]))
print(column_3)
答案 1 :(得分:1)
字符串拆分允许限制提取的部分数量,因此您可以执行以下操作:
A00, A01, A02, rest = line.split(" ", 3)
示例:
print "1 2 3 4 5 6".split(" ", 3)
['1', '2', '3', '4 5 6']
答案 2 :(得分:0)
我认为以下代码段可以帮助您。此外,您可以编辑项目的此代码。
f = open("input.dat")
line = f.readline().strip() # get the first line in line
while line: # while a line exists in the file f
columns = line.split('separator') # get all the columns
while columns: # while a column exists in the line
print columns # print the column
line = f.readline().strip() # get the next line if it exists
我希望它可以帮到你。