Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python文本文件修剪冒号_Python_String_Text_Trim_Truncation - Fatal编程技术网

Python文本文件修剪冒号

Python文本文件修剪冒号,python,string,text,trim,truncation,Python,String,Text,Trim,Truncation,我有一个文本文件,看起来像这样 firstname:lastname:123456789 somename:somelastname:12312456456 ... 我想将每个名称、lastname和id放入它自己的变量中 到目前为止,我就是这样做到的 with open("somefile.txt", 'r') as a: phonebook = a.readlines() l = 0 while (len(phonebook) < l+1): firstname =

我有一个文本文件,看起来像这样

firstname:lastname:123456789
somename:somelastname:12312456456
...
我想将每个名称、lastname和id放入它自己的变量中

到目前为止,我就是这样做到的

with open("somefile.txt", 'r') as a:
    phonebook = a.readlines()

l = 0
while (len(phonebook) < l+1):
    firstname = 
    lastname =
    number =

    l++
打开(“somefile.txt”,“r”)作为:
电话簿=a.读线()
l=0
而(len(电话簿)
并且卡在了修边部分

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(":")

没问题,你是威克洛姆。