繁体   English   中英

根据用户调用的行打印 .txt 文件上的行的结果

[英]Printing results from line on .txt file depending on the row the user calls

我正在开发一个打开 .txt 文件然后提示用户查看单个学生的程序。 该文件看起来像这样

Bronson 90 85 75 76 
Conor 90 90 90 90
Austyn 50 55 32 75
Mark 96 95 85 85
Anthony 85 85 85 85 

程序首先打印出每个学生的名字(每列的第一个单词)

with open(argv[1]) as f:
    names=[]
    for line in f:
        names.append(line.split()[0])
    print('\nNames of students:')
    print(*sorted(names),sep=' ')

然后询问您要查看哪个学生:

    name = input('Enter name of student whos marks you want to view: '

我正在尝试编写一段代码,将打印出用户键入的任何名称的内容。 例如,如果用户键入“Conor”,程序会打印出 90 90 90 90。

我尝试使用 if 语句,但似乎无法使其正常工作。 有人能够指出我正确的方向。 这是我目前拥有的:

for line in f:
    if names.append(line.split()[0]) == name:
         print(line)

谢谢!

您的 if 语句可以工作,但您不应该在循环时修改列表(不要追加)

实际上,您将使用以名称为键的字典

names=dict() 
with open(argv[1]) as f:
    for line in f:
        parts = line.split()
        names[parts[0]] = parts[1:]

name = input("enter a name") 
print(names[name]) 

如果您不需要存储每一行​​,那么它看起来像

name = input("enter a name") 
with open(argv[1]) as f:
    for line in f:
        parts = line.split()
        if parts[0] == name:
            print(parts[1:]) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM