在Python中,如何选择文件中数字旁边的单词?

2024-04-27 08:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我打开了这个文件(wordlist.txt文件)地址:

...
14613 bore
14614 borg
14615 boric
14616 boris
14621 born
14622 borne
14623 borneo
14624 boron
...

如果变量是,例如14623,我如何选择它旁边的单词?你知道吗


Tags: 文件txt地址单词borgwordlistbornboris
3条回答

尝试以下操作:

with open('wordlist.txt') as f:
    for line in f:
        row = line.split()
        if row[0] == '14623':
            print(row[1])
            break

如果您只想访问该项目一次,那么这是非常可读的:

with open('test.txt') as f:
    print next(line.split()[1] for line in f 
               if line.startswith('14623'))

如果你只做过一次,就按falsetru说的做。你知道吗

如果需要查找多个数字,请将条目存储在字典中:

wordmap = {}
with open('wordlist.txt') as f:
    for line in f:
        key, value = line.split()
        wordmap[key] = value

现在你可以像这样查找任何数字:

>>> wordmap['14623']
borneo

您可能需要添加一些改进:

  1. rstrip单词末尾的换行符
  2. split(None, 1)处理中间有空格的单词
  3. wordmap[int(key)]所以您可以查找wordmap[14623]而不是wordmap['14623']
  4. 用理解力把整件事改写成两句话
  5. 更好的错误处理,因此如果文件中的某一行无效,您可以跳过它,或者打印一条有用的错误消息,如“invalid line#1731:'glassdfefewasd',而不是转储一个通用异常或任何适当的错误消息。你知道吗

例如,这是#1、#2和#4:

with open('wordlist.txt') as f:
    wordmap = dict(line.rstrip().split(None, 1) for line in f)

相关问题 更多 >