我想导入一个文件,然后使用两个定界符将它们加载到两个数组中。我想打开包含以下内容的data.txt:
place1,time1
place2,time2
place3,time3
...
我希望将数组places
放在','之前,并将times
放在','之后的时间
我可以使用open()成功加载文件,然后使用line.strip().split('\n')
将它们拆分成一个数组
data = open("data.txt", "r")
infoArray = []
for line in data:
infoArray.append(line.strip().split('\n'))
data.close()
print infoArray
我希望place [0]为place1,places [1]为place2,依此类推...并且对于time [0]为time1,time [1],为time2,等等。
答案 0 :(得分:1)
您可以使用csv
模块来读取逗号分隔的数据,还可以使用zip()
来打开可迭代的reader
对象的包装:
>>> import csv
>>> with open("data.txt") as f:
... reader = csv.reader(f)
... p, t = zip(*reader)
...
>>> p
('place1', 'place2', 'place3')
>>> t
('time1', 'time2', 'time3')
在尝试自行解析文件时使用csv
的论点是,它将处理诸如引用值(标准CSV格式)之类的事情,而对str.split(line, ',')
的调用将失败。 / p>
无论您仅使用file
对象还是csv.reader
结果,这两种方法都是可迭代的。遍历它们时,将获得文件的各个行。这是一个更为可见的输入示例,您可以将[1, 2]
可视化为第一行数据,将[3, 4]
可视为第二行:
>>> a, b = zip(*[[1, 2], [3, 4]])
>>> a
(1, 3)
>>> b
(2, 4)
最后,此示例使用with open()
,创建上下文管理器,并在使用完后创建ensures that the file is closed。