2013-05-06 202 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