Python:从文本文件中读取混合数据

时间:2014-02-08 23:56:24

标签: python file-io

我有一个包含两列的简单文本文件。示例行: 'J0005-28'14719.0 我想逐行读取第一个条目作为文本,第二个作为数字读取,所以我可以设置变量,如name ='J0005-28'和value = 14719.0

有没有一种简单的方法可以在不使用Regex或其他复杂的解析过程的情况下在Python中执行此操作?

2 个答案:

答案 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()