[英]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()
从tav1
和tav2
获取第一个值。 .strip()
负责\\n
。
通过使用random.sample
,您可以获得值列表。 因为只抽取一个样本,所以您得到的列表中只有一个项目,在示例“ Young”中。 但是,它在列表中,所以更像["Young"]
。 要仅访问"Young"
,请说出tav1[0]
,从列表中获取第一个(也是唯一的)项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.