簡體   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