2015-12-14 76 views
1

我一直在努力解決如何把一個文本文件隨機挑選一個單詞,並從3個不同的文本文件中完成1行打印,但我不能把它放在1行?它每次都把它放在一個新的路線上?這些單詞全部在文本文件的列中。使用PYTHON IDLE向上註冊即時消息!Python,從文本文件打印並放在1行?

############### 
import random 
import time #Importing so some bits of code works 
import sys  
############### 

#The main game and generator 
def main(): 

    #Gets text files from the folder and randomly picks a line of the text 
    with open("column1.txt") as A: 
     A = random.choice(list(A)) 
    with open("column2.txt") as B: 
     B = random.choice(list(B)) 
    with open("column3.txt") as C: 
     C = random.choice(list(C)) 

    print("\nThou\n"A+B+C) 

    time.sleep(2) 

    print("Restarting...\n") 

    menu() 

#Menu System 
def menu(): 
    print("===Menu===") 
    print("Choose 1 to start the abuse generator.") 
    print("Choose 2 to exit.") 
    choice = input("Please choose one: ") 

    if choice == "1": 
     main() 

    elif choice == "2": 
     sys.exit() 

    else: 
     print("Error!") 

#Go's to the menu that is defined as menu above 
menu() 

這是輸出:

===Menu=== 
Choose 1 to start the abuse generator. 
Choose 2 to exit. 
Please choose one: 1 

Thou 
lumpish 
    tdizzy-eyed 
    thugger-mugger 

Restarting... 

這裏是列1:

artless 
bawdy 
beslubbering 
bootless 
churlish 
cockered 
clouted 
craven 
currish 
dankish 
dissembling 
droning 
errant 
fawning 
fobbing 
froward 
frothy 
gleeking 
goatish 
gorbellied 
impertinent 
infectious 
jarring 
loggerheaded 
lumpish 
mammering 
mangled 
mewling 
paunchy 
pribbling 
puking 
puny 
quailing 
rank 
reeky 
roguish 
ruttish 
saucy 
spleeny 
spongy 
surly 
tottering 
unmuzzled 
vain 
venomed 
villainous 
warped 
wayward 
weedy 
yeasty 
+0

你能提供一個格式化文件的例子嗎?我們可以看到column1.txt的佈局嗎? – Panda

回答

-1

聽起來像是你需要將文件分割成字符串的換行字符:

with open("column1.txt") as A: 
    A = random.choice(A.read().split('\n')) 
with open("column2.txt") as B: 
    B = random.choice(B.read().split('\n')) 
with open("column3.txt") as C: 
    C = random.choice(C.read().split('\n')) 

你可能還想打電話給t他print語句不同,因此增加了空間:

print("\nThou\n", A, B, C) 

對於這個工作蟒2,您需要使用from __future__ import print_function或省略大括號。

+0

只是打印這個? 選擇1啓動濫用發生器。 選擇2退出。 請選擇一個:1 ===菜單=== 選擇1啓動濫用生成器。 選擇2退出。 請選擇一個:1 禰 塊狀 /tdizzy眼睛 /thugger-搶劫犯 / 重新開始...... –

+0

感謝的人欣賞它! –

0

首先,有一個語法錯誤:

print("\nThou\n"A+B+C) 

應該

print("\nThou\n"+A+B+C) 

示例代碼:

A = "Some random Text1" 
B = "Some random Text2" 
C = "Some random Text3" 
print("\nThou\n",A,B,C) 

輸出:

Thou 
Some random Text1 Some random Text2 Some random Text3 

請讓我知道,如果你有這個

+0

這是行不通的,因爲我試圖從文本文件中打印出來,但我希望它與其他文件位於同一行,並且所有操作都將它放在輸出中的新行上。 –

+0

你可以簡單地把它們放在'print()'中,用逗號分開,把它們全部打印在一行 –

+0

?!我從.txt文件打印它?和打印它,而不是一個+是一樣的?所有我試圖做的是把它放在同一行 –

0

任何其他問題,爲了把多行字符串在同一行,你可以做

with open("column1.txt") as A: 
    A = random.choice(list(A)) 
with open("column2.txt") as B: 
    B = random.choice(list(B)) 
with open("column3.txt") as C: 
    C = random.choice(list(C)) 

print " ".join((A + B + C).splitlines()) 

str.splitlines()創建一個字符串列表,多行的每個都是一條線串。換行符被刪除,並且一行中的多個單詞不被分割()。

+0

我會在哪裏放這個(對不起,我有點新) –

+0

我把字符串對象命名爲mystring,所以只需要用你的變量名替換它即可。我會在答案中澄清它。 –

相關問題