繁体   English   中英

在python3中删除'\\ n',[和]

[英]Removing '\n', [, and ] in python3

我正在编写一个GUI,它将为一些桌面游戏的小酒馆生成一个随机名称。 我有这样的.txt文档。

Red
Green
Yellow
Resting
Young

King
Dragon
Horse
Salmon

我正在阅读并使用以下内容将它们随机加入

x = 1
tavern1 = open('tavnames1.txt', 'r')
name1 = tavern1.readlines()
tav1 = random.sample(name1, int(x))
tav1 = str(tav1)
tav1 =tav1.strip()
tav1 =tav1.replace('\n', '')


tavern2 = open('tavnames2.txt', 'r')
name2 = tavern2.readlines()
tav2 = random.sample(name2, int(x))
tav2 = str(tav2)


TavernName = 'The' + tav1 + tav2


print(TavernName)

我得到的输出看起来像

The['Young\n']['Salmon\n']

我试过在字符串上使用.replace()和.strip(),但它似乎不起作用。

有任何想法吗?

干杯。

sample()始终返回列表-即使有一个元素。 并且您使用str()将列表转换为字符串,因此Python添加[ ] ,而strip()不起作用,因为\\n不在字符串末尾。

但是您可以使用random.choice() ,它仅返回一个元素-因此您不必转换为字符串,也不会得到[ ] 然后可以使用strip()删除\\n

tavern1 = open('tavnames1.txt')
name1 = tavern1.readlines()
tav1 = random.choice(name1).strip()

tavern2 = open('tavnames2.txt')
name2 = tavern2.readlines()
tav2 = random.choice(name2).strip()

tavern_name = 'The {} {}'.format(tav1, tav2)

print(tavern_name)

摆脱换行符的一种方法是读取整个文件并使用splitlines() :(请参阅在不使用换行符的情况下读取文件

tavern1 = open('tavnames1.txt', 'r')
name1 = tavern1.read().splitlines()

要选择列表name1的随机项,可以使用tav1 = random.choice(name1) (请参阅https://docs.python.org/3.6/library/random.html#random.choice )。

通过执行tav1[0].strip()tav1tav2获取第一个值。 .strip()负责\\n

通过使用random.sample ,您可以获得值列表。 因为只抽取一个样本,所以您得到的列表中只有一个项目,在示例“ Young”中。 但是,它在列表中,所以更像["Young"] 要仅访问"Young" ,请说出tav1[0] ,从列表中获取第一个(也是唯一的)项目。

暂无
暂无

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

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