我有一个包含两列的简单文本文件。示例行: 'J0005-28'14719.0 我想逐行读取第一个条目作为文本,第二个作为数字读取,所以我可以设置变量,如name ='J0005-28'和value = 14719.0
有没有一种简单的方法可以在不使用Regex或其他复杂的解析过程的情况下在Python中执行此操作?
答案 0 :(得分:1)
为此,您需要知道文件中行的结构。你想要分离的字段在文件中是如何分隔的。在您的示例中,如果您确定字段由空格分隔,则可以使用python的csv
模块并将分隔符设置为空格并解析行。
示例代码:
import csv
names = []
values = []
with open(input_file, 'r') as infile:
csv_reader = csv.reader(infile, delimiter=' ')
for line in csv_reader:
names.append(line[0])
values.append(line[1])
infile.close()
答案 1 :(得分:0)
是的,首先阅读整行,然后分别提取数据。例如:
f=open('abc.txt','r')
while 1:
a=f.readline()
if a=='': break
a=a.split() #This creates a list of the input
name=a[0]
value=int(a[1]) # or value=float(a[1]) whatever you want
#use the name and value howsoever
f.close()