【问题标题】:Importing certain details from a 'txt' file从“txt”文件中导入某些详细信息
【发布时间】:2015-11-28 13:21:41
【问题描述】:

我有一个.txt 文件,其中名称和地址以下列格式显示:

Sam, 35 Marly Road
...
...

我希望能够搜索 Sam 并找到 35 Marly Road

这是我到目前为止的代码:

name = input("Please insert your required Client's name: ")
if name in open('clientAddress.txt').read():
  print ("Client Found")`

这会检查输入的 ID 在文件中是否可用,但不会打印地址。如何更改它,以便它找到名称并打印地址?

【问题讨论】:

  • 我试过: open('clientRecords.txt').read(): print (" Found Client") 但那只打印 'Found Client' 而不是地址
  • 考虑看看docs.python.org/2/library/csv.html 结合阅读这些行和一个 if 语句来检查它是否是正确的名称,瞧。
  • 我不需要检查它是否是正确的名称——我已经做到了。我需要我的程序在提供的文件中找到名称并打印地址。
  • 这就是我的意思:'检查它是否是正确的名称'。您需要一个 ìf` 语句来检查该行是否与您预期的名称相同。

标签: python csv file-read


【解决方案1】:

作为一种快速解决方案 - 见下文

username = input()

with open('clientRecords.txt', 'r') as clientsfile:
    for line in clientsfile.readline():
        if line.startswith("%s, " % username):
            print("Cient %s found: %s" % (username, line[len(username) + 2:]))
            break

【讨论】:

  • 我试过了——但它什么也没做。无论我输入什么,它都会终止程序。 (跳到下一行给我>>>)
【解决方案2】:

简单的解决方案

username = input()
with open('clientRecords.txt', 'r') as clientsfile:
    for line in clientsfile:
        if line.startswith("%s, " % username):
            print("Client %s found: %s" % (username, line.split(",")[1]))
            break

For 循环遍历文件行,当我们发现行以所需的客户端名称开头时,我们打印地址并中断循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多