Python 文本文件 trim 冒号

Python text file trim colon

我有一个如下所示的文本文件

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++

然后卡在修边部分

with open("somefile.txt", 'r') as a:
    for line in a:
        firstname, lastname, number = line.split(":")
        number = int(number)

.readlines()不需要将电话簿作为列表存储在内存中。如果文件很大,这将是一个问题,因为您会使用大量内存。您可以直接逐行迭代它。由于 str.split 方法和元组解包,提取变量非常容易,您可以查看这些。

只需将数据存储在一个列表中,每行的子列表分为 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(":")