我的脚本在sys上调用
,然后调用readlines()
。stdininput()
,但最后一次调用无效。
这是我的剧本:
import click
@click.command()
@click.argument('data', type=click.File())
def inp(data):
lines = data.readlines()
print('Read {} lines. Continue?'.format(len(lines)))
choice = input().lower()
print("You said '{}'.".format(choice))
if __name__ == '__main__':
inp()
如果用户在命令行上指定了一个实际的文件参数,则脚本可以正常工作,但如果用户通过管道输入数据并使用-
:
head -n10 data.txt | python3 script.py -
Read 10 lines. Continue?
Aborted!
我需要支持-
读取,然后是输入()
-我如何使它工作?
为了节省我们的时间,你可以跳到底部看结论
我和你一样在寻找这个问题的答案。
首先,我认为以下几点可以解决这个问题。。。
无需EOF的多管道输入
如何使用输入()后,从stdin读取文件?
然而,它在我的计算机中不成功,因此,我试图弄清楚如何准确地清除EOF标记...
终止/中断/中止Python控制台/sys。stdinreadline()
如何终止/中断/中止Python控制台/sys.stdinreadline()?
脸红
如何刷新Python中的输入流?
在C语言中,我们使用fflush(stdin)。。等来清除缓冲区
在C语言中,我们使用std::cin。get()。。等来清除缓冲区
但是Python语言呢??
搜索了2个小时后,我意识到Python到目前为止还没有提供此功能,请清除stdin中的buffer/EOF
在网上可以找到像这样成功的答案。如何使用“输入()”在从“标准普尔”读取文件后?只适用于Linux系统
看完这个
https://www.twblogs.net/a/5c0ac824bd9eee6fb21399d4
*我很确定(我认为)在Windows中的Python不能使用输入后stdin被文件
然而,这是否意味着,我们应该打击系统。标准差分法?
不,很明显,否则我不会在这里花时间打字。。。
重新创建您自己的输入,如下所示
def new_input(): ## version 1
import msvcrt
str_=''
c=msvcrt.getche()
while ord(c)!=3 and ord(c)!=4 and ord(c)!=26 and ord(c)!=13:
# print(ord(c))
str_ = str_+str(c)[2:-1]
c=msvcrt.getche()
return str_
def new_input(interact_string_): ## version 2
import msvcrt
print(interact_string_, end ="")
str_=''
c=msvcrt.getche()
while ord(c)!=3 and ord(c)!=4 and ord(c)!=26 and ord(c)!=13:
# print(ord(c))
str_ = str_+str(c)[2:-1]
c=msvcrt.getche()
return str_
def new_input(interact_string_): ## version 3
import msvcrt
import os
print(interact_string_, end ="")
str_=''
print('')
c=msvcrt.getche()
html" target="_blank">while ord(c)!=3 and ord(c)!=4 and ord(c)!=26 and ord(c)!=13:
os.system('cls')
print(interact_string_, end ="")
# print(ord(c))
if ord(c)==8:
str_ = str_[0:-1]
print(str_)
else:
str_ = str_+str(c)[2:-1]
print(str_)
c=msvcrt.getche()
# print(str_)
return str_
这是数字的含义
它仍然可以方便地使用if结构来响应,并返回最终的字符串
>
使用stdin读取行()/readline()/read()读取文件后,在Windows系统中无法使用stdin输入/输出文件
然而,在同样的情况下,Linux系统上同样的问题是可以解决的,答案就在那里。。。
在我看来,根据我的研究,Windows的最佳答案将是我的(当然我会这么说...)。==
本文向大家介绍Node.js用readline模块实现输入输出,包括了Node.js用readline模块实现输入输出的使用技巧和注意事项,需要的朋友参考一下 什么是Readline Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require("readline")可以引用模块。 如何使用Readline 以使用为角度的话,学习
配置 # readline_parse_and_bind.py try: import gnureadline as readline except ImportError: import readline readline.parse_and_bind('tab: complete') readline.parse_and_bind('set editing-mode vi')
我转向你,在这件事上我一直把头撞在墙上。 我正在做一个小的socket编程,我可以看到当我把它放出来。println(“…”)while循环之前的代码行(in.readLine())它工作正常,但我需要它位于循环内部。 说清楚一点,我没有看到任何错误。我只是看不到此应用程序的客户端显示文本。它看起来好像在工作,但事实并非如此。此外,我也不控制该应用程序的客户端,它由通过TCP连接到此套接字侦听器应
描述 (Description) 此函数从EXPR引用的文件句柄中读取一行,返回结果。 如果要直接使用FILEHANDLE,则必须将其作为typeglob传递。 简单的readline函数等效于<>。 语法 (Syntax) 以下是此函数的简单语法 - readline EXPR 返回值 (Return Value) 此函数在标量上下文中仅返回一行,在列表上下文中,返回到文件结尾的行的列表 例子
GNU Readline 库提供了一组供应用程序使用的功能,这些功能允许用户在键入命令时编辑命令行。Emacs 和 vi 编辑模式均可用。Readline 库包含其他功能,这些功能可以维护以前输入的命令行的列表,以重新调用并可能重新编辑这些命令行,并对先前的命令执行类似 csh 的历史记录扩展。 历史记录设施也作为构建过程的一部分放置在一个单独的库中,即历史记录库。在需要 Readline 功能的
问题内容: 我正在编写一个连接到servlet的程序,这要感谢a,但是我在检查url时卡住了 我得到了错误: java.net.ProtocolException:读取输入后无法写入输出。 如果我用注释中的代码检查网址,但不幸的是它可以正常工作,我需要检查网址,所以我认为问题出在方法上,但我不知道如何解决 非常感谢你 问题答案: HTTP协议基于请求-响应模式:首先发送请求,然后服务器响应。服务器