2013-05-06 164 views
0

我正在嘗試使用Python製作小型文本創建器應用程序。該概念與普通文本創建者(例如記事本)相同。但是我很難讓用戶輸入很多段落。到目前爲止,我只能夠讓用戶輸入2段。有沒有人可以幫助我?這裏是我的腳本:添加更多行

print "Welcome to 'Python Flat Text Creator'." 
print "Please enter the name of your file and its extension (.doc atau .txt)." 

filename = raw_input("> ") 
target = open(filename, 'w') 
typeyourtext = raw_input("Type below: \n") 
target.write(typeyourtext + "\n") 
typeyourtext = raw_input("\n") 
target.write(typeyourtext + "\n") 
target.close() 
+4

使用循環????? – 2013-05-06 12:58:02

+0

所以*編輯*文件對你來說並不重要,不是嗎? – Crisfole 2013-05-06 12:59:14

+0

現在,我想知道如何首先「創建」文本:D – Khadis 2013-05-06 13:29:18

回答

1

一個簡單的答案是簡單地把打字,在一段時間的文字顯示(真)塊,並在等待着什麼(按鍵或字符集)來打破這個循環。但我不確定你是否想這麼做。

試着繞過它,將字符作爲其他文本編輯器逐個插入 - 例如看看Vim。這裏使用的系統相當簡單和方便。

編輯:

獲取按鍵:How to accept keypress in command line python?

做,當真實週期:http://wiki.python.org/moin/WhileLoop

在每個週期的結束時,如果輸入字符不是字符(27),這是ESC鍵,然後附加到正在創建的文本並顯示它..但這不適用於大尺寸的文件..

+0

您可以給我鏈接到這樣做的樣本嗎?我真的是一個新手,仍然必須認真思考代碼:) – Khadis 2013-05-06 13:09:01

+0

編輯..我很抱歉,我不能發佈完整的代碼,但我目前在工作,所以我不能寫整個事情:) 希望能幫助到你! – Dropout 2013-05-06 15:48:41

+0

鏈接有幫助:) 在此之前,我還沒有了解「while」。現在,我有新的參考。謝謝:) – Khadis 2013-05-07 02:53:59

0

您可以使用一段時間當用戶完全不輸入任何內容時,p設置爲結束。

target = open(filename, 'w') 
previousKeypress = 0 

print("Type below:\n") 

while previousKeypress != "": 
    typeyourtext = raw_input("") 
    target.write(typeyourtext + "\n") 
    previousKeypress = typeyourtext 

target.close() 

如果您打算讓用戶通過任何輸入施加額外的新行中的文檔中,你可以設定條件,以字符的特定組合,也許像「ABC123」,以結束對其做出反應。

你甚至可以要求用戶在程序的最開始通過另一個raw_input來設置這個結束組合。

+0

如果我想ESC按鈕可以阻止用戶輸入文字? – Khadis 2013-05-06 13:14:34

+0

@Khadis就這一點而言,我不確定。使用Escape鍵退出循環可以使用msvcrt模塊完成。問題在於,看起來raw_input會阻止msvcrt捕獲轉義密鑰。到目前爲止,如果你真的想使用轉義鍵並讓程序順利運行,我想你可能需要使用msvcrt構建程序來捕獲按鍵。請記住,msvcrt是一個純Windows的解決方案。 – chrtan 2013-05-06 13:40:05

+0

我目前使用Windows:D(也是Ubuntu)。那麼,上面的腳本已經幫助我並教會了我新的東西:D謝謝。 – Khadis 2013-05-07 02:46:05