python中的正则表达式仅将不同列中的匹配字符串写入输出csv

python中的正则表达式仅将不同列中的匹配字符串写入输出csv,python,csv,Python,Csv,我有一个超过一百万行的数据集。不幸的是,这些柱子也不那么均匀。不幸的是,我要查找的信息有时在不同的栏目中。我是否可以以某种方式过滤并仅将其写入输出csv 数据集由以下类似字符串组成: 07.11.2016 23:20:37 Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)

我有一个超过一百万行的数据集。不幸的是,这些柱子也不那么均匀。不幸的是,我要查找的信息有时在不同的栏目中。我是否可以以某种方式过滤并仅将其写入输出csv

数据集由以下类似字符串组成:

07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
我想在输出csv中写入的内容:

Date;Request(in ms)   
07.11.2016;20;
07.11.2016;332;
07.11.2016;7292;
07.11.2016;3213;
07.11.2016;435;
日期的我的正则表达式:

(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d
请求期间的我的正则表达式:

[\0-9]+[ s]
我的代码:

import re
import sys

from glob import glob

with open('output.csv', 'a') as combinedFile:
    combinedFile.write('Date;Request(in ms)\n') # Headers
    for eachFile in glob('*.csv'):
        if eachFile == 'C:/x/x/x/x/*.csv':
            pass
        else:
            count = 0
            for line in open(eachFile, 'r'):
                if count != 0:
                    combinedFile.write(line)
                count = 1
我正在寻找全球解决方案,因为不幸的是结构化解决方案不起作用。请求的字符串有时在第2列,有时在第3列

我不能在这里显示数据集,因为它是一个日志文件,包含个人信息

我提前感谢你的帮助

you_data.csv文件:

07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
07.11.2016  23:20:37    Request completed in 20 ms. Request from 11.1.1.111 action=GetContent&Reference=311.1.1.111&OutputEncoding=UTF8 (11.1.1.111)
代码:

输出:


谢谢你的回答,但我没有文本字符串,我有多个csv输入。。而且csv读取没有拆分方法..我更新了代码,我不知道为什么有人投票否决我的答案,不留下评论或答案。如果csv是统一的,这将起作用。。。这对我来说毫无意义:请求的字符串有时在第二列,有时在第三列。我没有否决你的答案,我会尝试你的方法,谢谢!@Jeanderson Barros C–ndido基于示例代码,我可以做这么多,也许OP可以发布更多相同格式的假数据。您是否正在寻找恰好位于不同列上的数据?问题是如何识别或写入?在哪里尝试将regexp与行匹配?
with open('you_data.csv') as f:
    lines = f.readlines()
    for line in lines:
        split_line = line.split()
        Date = split_line[0]
        Request = split_line[5]
        print(Date, Request)
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20
07.11.2016 20