如何从没有“|”的文件中选择一个或两个部分的单词(名称) python 中的分隔符

How to choose a one or two-parted word(name) from file without "|" separator in python

您好,我正在寻找解决我的问题的方法:

我有文本文件 countries-and-capitals.txt 带有示例词:

Poland | Warsaw
Sri Lanka | Colombo

我需要编写代码来随机选择国家或首都名称。

我的问题是我无法弄清楚如何在示例 斯里兰卡 中选择没有“|”分隔符且没有 科伦坡字.

我坚持

import random

word = random.choice(open("countries-and-capitals.txt").readlines())

但这段代码选择整行 "\n"。

您可以使用列表解包以及 .split() 在一行中处理此问题:

import random

file = open("countries-and-capitals.txt")
[country, capital] = random.choice(file.readlines()).split(" | ")
file.close()

假设您想选择斯里兰卡:

import random
word = random.choice(open("countries-and-capitals.txt").readlines())
word = word.split(" | ")
country = 'Sri Lanka'
if word[0] == country:
    print("Sri Lanka's capital is: "+word[1].strip())

您可以使用 split("|") 删除 |,使用 .strip() 删除 \n

输出:

如果你只想打印随机国家或首都,你可以应用另一个随机生成器:

import random
word = random.choice(open("countries-and-capitals.txt").readlines())
word = word.split(" | ") #remove |
word[1] = word[1].strip() #remove \n
print(random.sample(word, 1)[0]) 

输出:

感谢Ka-Wa Yip BrokenBenchmark Devang Sanghani

和你们一起我找到了随机选择的解决方案:国家或首都

import random

word = random.choice(open("countries-and-capitals.txt").readlines())
word = word.strip('\n').split(" | ")
word = random.choice(word[0:2])
print(word)

谢谢!