[英]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.