Multiple lines user input in command-line Python application

て烟熏妆下的殇ゞ 提交于 2019-11-30 20:59:32
import sys

text = sys.stdin.read()

After pasting, you have to tell python that there is no more input by sending an end-of-file control character (ctrl+D in Linux, ctrl+Z followed by enter in Windows).

This method also works with pipes. If the above script is called paste.py, you can do

$ echo "hello" | python paste.py

and text will be equal to "hello\n". It's the same in windows:

C:\Python27>dir | python paste.py

The above command will save the output of dir to the text variable. There is no need to manually type an end-of-file character when the input is provided using pipes -- python will be notified automatically when the program creating the input has completed.

jfs

You could get the text from clipboard without any additional actions which raw_input() requires from a user to paste the multiline text:

import Tkinter
root = Tkinter.Tk()
root.withdraw()

text = root.clipboard_get()

root.destroy()

See also How do I copy a string to the clipboard on Windows using Python?

Use :

input = raw_input("Enter text")

These gets in input as a string all the input. So if you paste a whole text, all of it will be in the input variable.

EDIT: Apparently, this works only with Python Shell on Windows.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!