【问题标题】:Problem with reading pasted text in terminal在终端中读取粘贴文本的问题
【发布时间】:2011-05-24 18:50:43
【问题描述】:

我正在使用
description = raw_input()在终端中阅读文本
如果我写下文本并按回车,它会起作用。问题是当我使用Ctrl+Shift+Vright click + paste 从某处粘贴文本时。我的程序立即结束,description 只包含部分文本(我可以在数据库中看到它)。

您知道如何做到这一点,以便paste 有效吗?我在 Ubuntu 中使用 xfce4-terminal

谢谢

【问题讨论】:

    标签: python terminal


    【解决方案1】:

    确保您粘贴的文本不包含任何可能会结束输入的嵌入控制字符(例如换行符)。

    【讨论】:

      【解决方案2】:

      试试这个,从谷歌搜索中提取出来。您必须在粘贴后输入 3 个空行,但当然,如果您的粘贴中有 3 个空行,那么它将不起作用。这个概念就在那里,你只需要选择一个结束控制字符。感谢 cmets 抓住了那些家伙。

      print "paste quote:"
      emptycount = 0
      lines = []
      
      while emptycount < 2:
          t = raw_input()
          if len(t) == 0:
              emptycount +=1
          else:
              emptycount=0
              lines.append(t)
              lines.append("\n")
      
      print " ".join(lines[:-1])
      

      【讨论】:

      • @xralf:这完全取决于您粘贴的文本包含多少嵌入的换行符。
      • @Ignacio 我认为在 lines 列表中的 while 循环之后,最后会有两个 '\n',但我现在看到会有三个,因为我们从零:-) 还是没有? &lt; 2 => 0 和 1 => 行[:-2] ?
      • 实际上 [:-1] 似乎输出了最好的结果。寻找一些非换行符来表示粘贴结束可能会更好,但这是我能找到的真正实现这一点的唯一方法。
      猜你喜欢
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      相关资源
      最近更新 更多