【问题标题】:Python text file trim colonPython文本文件修剪冒号
【发布时间】:2015-09-26 14:02:26
【问题描述】:
我有一个像这样的文本文件
firstname:lastname:123456789
somename:somelastname:12312456456
...
我想将每个名字、姓氏和 id 放入它自己的变量中。
这就是我到目前为止的方式。
with open("somefile.txt", 'r') as a:
phonebook = a.readlines()
l = 0
while (len(phonebook) < l+1):
firstname =
lastname =
number =
l++
卡在修剪部分。
【问题讨论】:
标签:
python
string
text
trim
truncation
【解决方案1】:
只需将数据存储在一个列表中,每行的子列表分为 firat name、last name 和 id。
with open("somefile.txt", 'r') as f:
data = [line.strip().split(":") for line in f]
您也可以使用 dict 但没有真正的优势,除非您想按名称进行查找,但即便如此,如果您只想在循环中使用每条数据而不是存储,名称也必须是唯一的然后全部用作您的迭代:
with open("somefile.txt", 'r') as f:
for line in f:
fn, ln , _id = line.strip().split(":")
【解决方案2】:
with open("somefile.txt", 'r') as a:
for line in a:
firstname, lastname, number = line.split(":")
number = int(number)
没有必要将电话簿作为列表存储在内存中.readlines()。如果文件很大,这将是一个问题,因为您会使用大量内存。您可以直接逐行遍历它。由于str.split 方法和元组解包,提取变量非常容易,您可以查看这些。