草庐IT

password-stdin

全部标签

Python - 使用 map(sys.stdin.readline()) 存储一个字符串和一个 int

如果输入包含一个空格分隔的int行,比如-13我可以使用map()函数将其映射存储在数组中arr=map(int,sys.stdin.readline().split())或者甚至在两个独立的变量中,通过n,m=map(int,sys.stdin.readline().split())有没有办法用同样的方式读取包含混合数据类型的输入行。例如-foo3foo是字符串,3是整数? 最佳答案 如果你总是有一个字符串和非负整数:importsysn,m=map(lambdax:(str,int)[x.isdigit()](x),sys.st

python - 强制 python 脚本从 STDIN 获取输入

我需要运行的python脚本仅从作为命令行参数传递的文件获取输入,如下所示:$markdown.pyinput_file有没有办法让它接受来自STDIN的输入?我希望能够通过Bash执行此操作,而无需显着修改python脚本:$echo"Sometexthere"|markdown.py如果我必须修改Python脚本,我该怎么做?(编辑:Here是解析命令行选项的脚本。) 最佳答案 我不确定它的可移植性如何,但在Unix-y系统上你可以将/dev/stdin命名为你的文件:$echo-nhithere|wc/dev/stdin028

Python 的 json.load(sys.stdin) 让我用'...'代替字符串周围的双引号

当我这样做时:importsys,json;importrequestsheaders={'Content-Type':'application/json','X-Parse-Application-Id':'...','X-Parse-REST-API-Key':'...'}data=json.load(sys.stdin)forstationindata["data"]:printstationres=requests.post('https://api.parse.com/1/classes/test4',data=station,headers=headers)我明白了{u'c

python - "cryptography is required for sha256_password or caching_sha2_password"

美好的一天。希望你一切都好。有人可以帮我解决这个问题吗?我是MySQL环境的新手。我正在尝试远程连接到MySQL数据库。我使用了以下python代码并得到了这个错误。Print(e)="cryptographyisrequiredforsha256_passwordorcaching_sha2_password"不知道如何解决错误。importpymysqlasdbHOST="XXXXX.XXX.XX”PORT=XXXXUSER="my_username"PASSWORD="my_password”DB="db_name"try:connection=db.Connection(hos

Python 使用 input() 逐行迭代 stdin

我正在尝试从控制台获取多个以换行符分隔的名称,并将它们放入一个变量中。假设我想永远从终端获取输入(稍后我将添加一些代码来跳出循环)。我知道如何使用while循环和递归来完成它,但我希望能够使用for循环来完成它。在下面的示例中,当我从终端输入"peter"时,我一次得到每个字母而不是整行:fornameininput():print(name)现在,如果我使用sys.stdin,name变量将变为"peter\n":fornameinsys.stdin:print(name)有没有一种简单的方法可以让input()给"name"整行而不是单个字符?或者只是由于使用forin的性质,我将

Python 正则表达式 : password must contain at least one uppercase letter and number

我正在使用Python和Flask对密码进行表单验证。密码需要至少包含一个大写字母和至少一个数字。我当前失败的尝试...re.compile(r'^[A-Z\d]$') 最佳答案 我们可以使用模式'\d.*[A-Z]|[A-Z].*\d'来搜索至少有一个大写字母和一个数字的条目。从逻辑上讲,大写字母和数字只能以两种方式出现在字符串中。要么是字母在前,数字在后,要么是数字在前,字母在后。管道|表示“或”,因此我们将分别查看每一侧。\d.*[A-Z]匹配后跟大写字母的数字,[A-Z].*\d匹配后跟数字的任何大写字母。words=['P

Python sys.stdin.read(max) 阻塞直到读到max(如果max>=0),阻塞直到EOF else,但是select表示有数据要读取

我的问题是:select表示有数据要读,有什么就读什么,不想等max存在的金额。如果maxmax>0读取块直到max字节可以读取。我不想要这个,我想阅读任何数量的select把它放在“准备阅读”列表中。read(1)是不切实际的,因为这将涉及到大量的读取调用。但它不能阻塞。有没有办法在select返回时找出缓冲区中存在的数量(如果它返回表明可以读取某些内容,而不是超时)并读取该数量?有没有办法使用max就像使用套接字一样?它立即读取尽可能多的内容,然后返回?解决方案可能是将文件置于非阻塞模式以进行读取?我不确定,我没想到这种“直到EOF”的行为。我会继续阅读和尝试,但我只花了30分钟左

python - 重复写入 stdin 并从 python 进程的 stdout 读取

我有一段Fortran代码,它从STDIN读取一些数字并将结果写入STDOUT。例如:doread(*,*)xy=x*xwrite(*,*)yenddo所以我可以从shell启动程序并获得以下inputs/outputs序列:5.025.02.56.25现在我需要在python中执行此操作。在与subprocess.Popen进行了徒劳的搏斗并浏览了该站点上的旧问题之后,我决定使用pexpect.spawn:importpexpect,osp=pexpect.spawn('squarer')p.setecho(False)p.write("2.5"+os.linesep)res=p.r

python 3 : reading bytes from stdin pipe with readahead

我想读取字节。sys.stdin以文本模式打开,但它有一个可用于读取字节的缓冲区:sys.stdin.buffer.我的问题是,当我将数据通过管道传输到Python时,如果我想要预读,我似乎只有2个选项,否则我会得到一个io.UnsupportedOperation:Fileorstreamisnotseekable.从sys.stdin读取缓冲文本,将该文本解码为字节,然后寻找(sys.stdin.read(1).decode();sys.stdin.seek(-1,io.SEEK_CUR).由于输入流中的不可编码字节而无法接受。使用peek从stdin的缓冲区中获取一些字节,将其切

python - 如何在 python 中将 EOF 写入 STDIN popen

我通过popen运行以下命令:p=subprocess.popen(["/usr/bin/whiptail","--title","\"Progress\"","--gauge","\"\"","6","50","0"],stdout=subprocess.PIPE,stding=subprocess.PIPE)要停止运行whiptail命令,我需要将EOF发送到标准输入。如何在Python中将EOF发送到标准输入?或者我只是调用p.terminate() 最佳答案 您需要关闭用作脚本标准输入的文件。因此在您的情况下是p.stdin