【问题标题】:Adding More Lines添加更多行
【发布时间】:2013-05-06 12:54:52
【问题描述】:

我正在尝试使用 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()

【问题讨论】:

  • 所以编辑文件对你来说并不重要,不是吗?
  • 现在,我想先了解如何“创建”文本:D

标签: python python-2.7


【解决方案1】:

一个简单的答案是简单地将文本的输入和显示放在一个 while(true) 块中,并等待某些东西(按键或一组字符)来打破循环。但我不确定你是否想这么简单。

尝试像其他文本编辑器一样一一插入字符来绕过它——例如看看 Vim。那里使用的系统相当简单方便。

编辑:

获取按键:How to accept keypress in command line python?

Do while true 循环:http://wiki.python.org/moin/WhileLoop

在每个循环结束时,如果输入字符不是 chr(27),即 ESC 键,则附加到您正在创建的文本并显示它。体积大..

【讨论】:

  • 你能给我链接到这样做的样本吗?我真的是一个新手,仍然需要认真考虑代码:)
  • 已编辑.. 很抱歉我不能发布完整的代码,但我目前正在工作,所以我不能写完整的东西:) 希望对您有所帮助!
  • 这些链接很有帮助:) 在此之前,我还没有了解“while”。现在,我有了新的参考。谢谢:)
  • 没问题,很高兴为您提供帮助。请选择一个答案,这样这个问题将不再是“未回答”。谢谢!
【解决方案2】:

您可以使用 while 循环设置在用户根本没有输入任何内容时结束。

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 设置这个结束组合。

【讨论】:

  • 如果我想要 ESC 按钮可以阻止用户输入单词,该怎么办?
  • @Khadis 到目前为止,我不确定。可以使用 msvcrt 模块使用 Escape 键退出循环。问题是 raw_input 似乎阻止了转义键被 msvcrt 捕获。截至目前,如果您真的想使用转义键并让程序顺利运行,我认为您可能需要使用 msvcrt 构建程序来捕获按键。请记住,尽管 msvcrt 是一个仅限 Windows 的解决方案。
  • 我目前正在使用 Windows :D(以及 Ubuntu)。好吧,上面的脚本已经帮助了我并教会了我新的东西:D 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
相关资源
最近更新 更多