Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python搜索字符串从第行匹配,然后打印几列_Python - Fatal编程技术网

Python搜索字符串从第行匹配,然后打印几列

Python搜索字符串从第行匹配,然后打印几列,python,Python,包含100万条记录的大型文本文件 我想从文件中搜索匹配的字符串(例如2580552),并使用awk从第1列、第5列、第45列和第46列的行字段中打印,我捕获数据,但需要python的答案 grep 2580552 /tmp/myfile.txt |awk -F'\t' '$5 == "2580552" {print $1","$5 $41","$46}' Thx, Sai。此代码帮助我解决问题 #!/usr/bin/env python import re pattern = r'156865

包含100万条记录的大型文本文件

我想从文件中搜索匹配的字符串(例如2580552),并使用awk从第1列、第5列、第45列和第46列的行字段中打印,我捕获数据,但需要python的答案

grep 2580552 /tmp/myfile.txt |awk -F'\t' '$5 == "2580552" {print $1","$5 $41","$46}'
Thx,
Sai。

此代码帮助我解决问题

#!/usr/bin/env python
import re
pattern = r'15686547'
with open('/tmp/some_junk_test.txt', 'rU') as fh:
    for line in fh:
        match = re.search(pattern, line)
        if match:
            a = line.split('\t')
            if str(a[4]) == pattern:
                print(a[0], a[4], a[40], a[45])
            else:
                print("Failed to find match % s" % pattern)`

堆栈溢出不是免费的代码编写服务。您说“需要python的答案”。那么是什么阻止你这么做?你安装了Python吗?你对Python有任何了解吗?你能用Python打开一个文件吗?是的,Python已经安装,我对Python有一定的了解,但我从未尝试过这个解决方案。以下是我尝试并找到的解决方案。#/usr/bin/env python,open(“/tmp/test.txt”,“r”)作为fname:for fname中的行:line=line.split()打印(第[2]行,第[6]行)或打印(第[2]行,第[-1]行)