如何将文本文件转换为分隔列表列表

我试图从文本文件中获取信息并将其转换为列表列表,稍后我将对其进行更多处理。文本文件的格式设置为每条信息由“,”分隔,然后在每个“人”的末尾有一个“\n”例如,111, Joe, Jones, 09-01-1980, 10 -1999年-19日, 95000


我很接近。却被一件小事困住了。我当前的代码:


def readFile(fileName):

    myFileObj = open(fileName, "r")

    peopleStr = myFileObj.read()

    peopleList = peopleStr.split("\n")

    newPeopleList = []

    for el in peopleList:

        sub = el.split(" ,")

        newPeopleList.append(sub)

    print(newPeopleList)

    

    return newPeopleList

这个 newPeopleList 返回


[['111, Joe, Jones, 09-01-1980, 10-19-1999, 95000'], ['113, James, Jo, 10-02-1982, 10-18-1998, 85000'], ['123, Jordan, Joul, 08-04-1988, 10-17-1988, 80000']]

但我需要的是


[[111, 'Joe', 'Jones', '09-01-1980', '10-19-1999', 95000], [113, 'James', 'Jo', '10-02-1982', '10-18-1998', 85000], [123, 'Jordan', 'Joul', '08-04-1988', '10-17-1988', 80000]]

所以他们每个人都可以成为列表中自己的项目!


我希望这是有道理的,我感谢任何帮助!


白猪掌柜的
浏览 89回答 3
3回答

烙印99

listOfLists = []with open(filename, "r") as msg:   for line in msg:      listOfLists.append(line.strip().replace(" ","").split(","))   msg.close()这应该可以。您逐行读取文件,将空格替换为空,用“,”分割每一行以生成一个列表,并将其存储在列表列表中。

慕桂英546537

尝试这个:newlist = [[y.split(", ")] for x in newPeopleList for y in x] print(newlist)

慕码人2483693

你可以获得你想要的更多Pythonic:list(map(lambda x:x.split(', '),open(filename,'r').readlines()))您自己的代码中的分隔符“,”是错误的,而它需要“,”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python