草庐IT

read_stdin

全部标签

python - 重复写入 STDIN 并读取子进程的 STDOUT 而不关闭它

我正在尝试在Python中使用一个子进程来保持外部脚本以类似服务器的方式打开。外部脚本首先加载一个模型。完成后,它会通过STDIN接受请求并将处理后的字符串返回到STDOUT。到目前为止,我已经尝试过了tokenizer=subprocess.Popen([tokenizer_path,'-l',lang_prefix],stdin=subprocess.PIPE,stdout=subprocess.PIPE)但是,我不能用tokenizer.stdin.write(input_string+'\n')out=self._tokenizer.stdout.readline()为了通过子

python - 使用 pandas.io.sql.read_frame,我可以像 read_csv 一样解析日期吗?

我正在使用pandas.io.sql.read_frame直接从数据库读取data_frame:cnx=pandas.io.sql.connect(host='srv',user='me',password='pw',database='db')df=pandas.io.sql.read_frame('sql_query',cnx)它可以很好地检索数据。但我想将其中一列解析为datetime64,类似于从CSV文件读取时可以执行的操作,例如:df2=pandas.io.read_csv(csv_file,parse_dates=[0])但是read_frame没有parse_dates

Python:code.interact(local=locals()) 其中 stdin/stdout 不可用

在Python中,以下代码片段将在执行时打开一个交互式shell。importcode;code.interact(local=locals())事实证明,这对于调试大量文档不足的代码非常有用。即使没有调试器,也可以使用shell导航程序内环境并弄清楚发生了什么。到目前为止,还不错。现在是挑战。我正在使用的软件(顺便说一句,它是用Django编写的)使用某种调度机制,然后与另一个Python进程对话,除了编辑它的代码。除了发送给它进行处理的变量外,我没有任何输入。但是,我不知道代码是如何工作的,因为文档很差,所以我想使用code.interact方法来解决问题。但是这个过程是由一些特殊

sys.stdin.read() 之后的 Python raw_input 抛出 EOFError

有人问过类似的问题before,但答案提出了一种不适用于我的情况的解决方法。电子邮件消息从mutt传送到脚本,并从STDIN读取:message=sys.stdin.read()#messageisparsedandURLsareprintedasalisttochoosefrom...selected_index=raw_input('WhichURLtoopen?')我知道raw_input()会得到read()留下的EOF,但是有没有办法“重置”STDIN? 最佳答案 你试过这个吗:message=sys.stdin.read

python - 使用pandas.read_csv从csv文件加载数据时如何指定dtype?

我有一些格式如下的文本文件:000423|东阿阿胶|300|1|0.15000||000425|徐工机械|600|1|0.15000||000503|海虹控股|400|1|0.15000||000522|白云山A||2||1982.080|000527|美的电器|900|1|0.15000||000528|柳工|300|1|0.15000||当我使用read_csv将它们加载到DataFrame时,它​​不会为某些列生成正确的数据类型。例如,第一列被解析为int,而不是unicodestr,第三列被解析为unicodestr,而不是int,因为缺少一个数据......有没有办法预设Da

python - 如何调试将 stdin 与 ipython 一起使用的脚本?

我有一个python脚本,它接受标准输入的输入。我想放入IPython.embed(),像这样:forfilepathinsys.stdin:dir=os.path.basename(filepath)...IPython.embed()然后我像这样调用脚本:find.-typef|thescript.py问题是IPython使用stdin作为交互式控制台,所以它首先看到的是剩余的管道数据。然后,管道关闭,终端退出。有没有办法通过ipython调试使用stdin的脚本? 最佳答案 您可以先将标准输入读入列表,然后重置标准输入:std

python - SQS : How can I read the sent time of an SQS message using Python's boto library

当我在AWS控制台的SQS消息View中查看消息时,我可以看到消息有发送时间。我如何使用Python的boto库读取这些数据? 最佳答案 当您在boto中从队列中读取消息时,您会得到一个Message对象。该对象具有名为attributes的属性。它是SQS保留的关于此消息的属性字典。它包括SentTimestamp。 关于python-SQS:HowcanIreadthesenttimeofanSQSmessageusingPython'sbotolibrary,我们在StackOve

python - seek(),然后是 read(),然后是 python 中的 write()

当运行以下python代码时:>>>f=open(r"myfile.txt","a+")>>>f.seek(-1,2)>>>f.read()'a'>>>f.write('\n')我得到以下(有用的)异常:Traceback(mostrecentcalllast):File"",line1,inIOError:[Errno0]Error用“r+”打开时会发生同样的事情。这应该会失败吗?为什么?编辑:显然,这只是一个示例,并不是我实际要执行的操作。我的实际目标是在添加新行之前验证文件是否以“\n”结尾或添加一个。我在WindowsXP下工作,Python2.5和Python2.6都存在问题

python - Pandas read_csv 在更改列数的情况下添加标题名称

我有很多csv文件,我想用Pandas(pd.read_csv)阅读,但是,在某些文件中,中间添加了一列没有标题,如下例所示:Apples,Pears1,23,45,6,7如果使用pd.read_csv(example_file),则会抛出以下错误“ParserError:错误标记数据。C错误:第4行中预期有2个字段,看到3”我想避免跳过该行,而只是添加一个虚拟header名称,如Unknown1,并得到以下结果:Apples,Pears,Unknown11,2,np.nan3,4,np.nan5,6,7 最佳答案 pandas需要

python - Argparse 和 ArgumentDefaultsHelpFormatter。选择 sys.stdin/stdout 作为默认值时的默认值格式

我对使用argparse的ArgumentDefaultsHelpFormatter类格式化程序很感兴趣(我的程序有几个子命令)。默认情况下,输入和输出参数分别设置为sys.stdin和sys.stdout。但是,这两个参数的格式可能会让用户有点困惑(例如(默认值:',mode'r'at0x10028e0c0>)。有没有一种方法可以专门轻松地更改这两个参数的输出格式以获得像“默认:STDIN”或“默认:STDOUT”之类的东西?谢谢importsysimportargparseparser=argparse.ArgumentParser(prog='PROG',formatter_cl