草庐IT

reading_lists

全部标签

awk - Unix/Perl/ python : substitute list on big data set

我有一个包含大约13491个键/值对的映射文件,我需要用它来将键替换为数据集中大约500000行的值,这些数据集分为25个不同的文件。示例映射:value1,value2示例输入:field1,field2,**value1**,field4示例输出:field1,field2,**value2**,field4请注意,该值可能位于出现次数超过1次的行中的不同位置。我目前的方法是使用AWK:awk-F,'NR==FNR{a[$1]=$2;下一个}{for(iina)gsub(i,a[i]);打印}'mapping.txtfile1.txt>file1_mapped.txt但是,这需要很

Python 子进程交互,为什么我的进程使用 Popen.communicate 而不是 Popen.stdout.read()?

我正在尝试使用subprocess模块与使用Python的命令行聊天机器人进行通信。(http://howie.sourceforge.net/使用编译后的win32二进制文件,我有我的理由!)这个有效:proc=Popen('Howie/howie.exe',stdout=PIPE,stderr=STDOUT,stdin=PIPE)output=proc.communicate()但是Popen.communicate等待进程终止(并向其发送EOF?),我希望能够与其进行交互。明显的解决方案是像这样读取stdout/写入stdin:这行不通:proc=Popen('Howie/how

Python 双端队列 : difference from list?

我正在阅读Python文档:我不明白双端队列与列表有何不同。来自文档:Returnsanewdequeobjectinitializedleft-to-right(usingappend())withdatafromiterable.Ifiterableisnotspecified,thenewdequeisempty.Dequesareageneralizationofstacksandqueues(thenameispronounced“deck”andisshortfor“double-endedqueue”).Dequessupportthread-safe,memoryeff

Python Force List Index out of Range 异常

我有一个列表列表x=[[1,2,3],[4,5,6],[7,8,9]]我希望代码抛出数组越界异常,类似于索引超出范围时在Java中的做法。例如,x[0][0]#1x[0][1]#2x[0-1][0-1]#如果抛出异常,我希望它返回0。try:x[0-1][0-1]#Iwantthistothrowanexceptionexcept:print0#printstheinteger0我认为基本上只要索引为负,就抛出异常。 最佳答案 您可以创建自己的列表类,继承默认列表类,并实现返回指定索引中元素的__getitem__方法:classM

Python list 不是同一个引用

这是代码:L=[1,2]LisL[:]False为什么这是错误的? 最佳答案 L[:](切片符号)表示:逐个元素地复制整个列表。因此,您有两个内容相同的列表,但它们是不同的实体。由于is评估对象标识,因此它返回False。L==L[:]返回True。 关于Pythonlist不是同一个引用,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2453672/

python - 获取模拟 file.read() 的实际返回值

我正在使用python-mock模拟文件打开调用。我希望能够以这种方式传递虚假数据,这样我就可以验证read()被调用以及使用测试数据,而不会在测试中访问文件系统。这是我到目前为止所得到的:file_mock=MagicMock(spec=file)file_mock.read.return_value='test'withpatch('__builtin__.open',create=True)asmock_open:mock_open.return_value=file_mockwithopen('x')asf:printf.read()这个输出是而不是'test'正如我所假设的那

python - 子进程 popen.communicate() 与 stdin.write() 和 stdout.read()

我注意到两种不同的行为和两种方法应该会产生相同的结果。目标-使用subprocess模块执行外部程序,发送一些数据并读取结果。外部程序为PLINK,平台为WindowsXP,Python3.3版本。主要思想-execution=["C:\\Pr..\\...\\plink.exe","-l",username,"-pw","***",IP]a=subprocess.Popen(execution,bufsize=0,stdout=PIPE,stdin=PIPE,stderr=STDOUT,shell=False)con=a.stdout.readline()if(con.decode(

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 : subclass `type` to create specialized types (e. g。一个 "list of int")

我正在尝试对type进行子类化,以创建一个允许构建专门类型的类。例如一个ListType:>>>ListOfInt=ListType(list,value_type=int)>>>issubclass(ListOfInt,list)True>>>issubclass(list,ListOfInt)False>>>#Andsoon...但是,这个ListOfInt永远不会被用来创建实例!我只是将它用作type的实例,我可以操纵它来与其他类型进行比较......特别是,在我的情况下,我需要根据类型查找合适的操作输入,我需要该类型包含更多精度(如listofint或XMLstring等...

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