首页 > 解决方案 > 使用 Python 查询多个文本文件以合并列并显示输出

问题描述

我有两个文本文件,其中包含如下所示的数据,我想以 Python 中描述的格式显示输出。我正在使用带有 Python 3.0 的 PyCharm IDE。我也尝试在 Python 中使用字典和列表,但我无法正确获取它。

[文件1.txt]

2|斯泰西|塔克
4|西米|米尔扎
9|导航|辛格
6|拉姆|帕特尔
7|乔|普鲁斯

[文件2.txt]

2|26
6|17
9|30
4|31
7|35

所需的打印输出:

2塔克,斯泰西26
4米尔扎,西米31
9 辛格,纳维德 30
6帕特尔,拉姆17
7 普鲁斯,乔 35

有人可以给我一个建议吗?

标签: pythonlistdictionary

解决方案


如果文件不是很大,您可以读取每个文件,将行附加到列表中(每个文件一个)。然后拆分'|'上的行。这将为您提供要匹配的 index[0] 。因此,您可以将每个列表的各个部分合并到一个新列表中进行输出。新列表将具有来自任一列表的 [0],来自 file1list + "," + [1] 来自 filelist1 + [1] 来自 filelist2 的 [2]。

#merglist.py

student_id = [] 
grade = []

file1 = open("file1.txt")
file2 = open("file2.txt")

f1 = file1.readlines()
for line in f1:
    student_id.append(line.split('|'))

f2 = file2.readlines()
for line in f2:
    grade.append(line.split('|'))

for g in grade:
    for s in student_id:
        if g[0]==s[0]:
            newline = g[0] + " " + s[2].strip("\n") + ", " + s[1] + " "+ g[1].strip("\n")
            print newline

| => python2 mergelists.py 
2 Tucker, Stacey 26
6 Patel, Ram 17
9 Singh, Naved 30
4 Mirza, Simi 31
7 Pruth, Joe 35

推荐阅读