Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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_Search_Split_Text Files_Phrase - Fatal编程技术网

Python 找到包含短语的行并打印该行的另一部分

Python 找到包含短语的行并打印该行的另一部分,python,search,split,text-files,phrase,Python,Search,Split,Text Files,Phrase,我试图搜索一个长文本文件,找到短语所在的部分,然后在一列中打印短语,在另一列中打印新文本文件中的相应数据 我要找的短语是“初始化所有”。文本文件将有数千行-我正在查找的一行将如下所示: 14-09-23 13:47:46.053 -07 000000027 INF: Initialize All start 这就是我目前所处的位置 仍在尝试打印三个单独的列:初始化全部、日期和时间 with open ('Result.txt', 'w') as wFile: with open('Lo

我试图搜索一个长文本文件,找到短语所在的部分,然后在一列中打印短语,在另一列中打印新文本文件中的相应数据

我要找的短语是
“初始化所有”
。文本文件将有数千行-我正在查找的一行将如下所示:

14-09-23 13:47:46.053 -07 000000027 INF: Initialize All start
这就是我目前所处的位置 仍在尝试打印三个单独的列:初始化全部、日期和时间

with open ('Result.txt', 'w') as wFile:
    with open('Log.txt', 'r') as f:
        for line in f:
            if 'Initialize All' in line:
                date, time = line.split(" ",2)[:2]
                wFile.write(date)

s.split(“,2)
中的
2
意味着
maxslit
被设置为
2
,因此我们只拆分两次,而不是拆分整个字符串,
s.split()[:2]
在默认情况下也可以在空白处拆分,但由于我们只需要前两个子字符串,因此拆分整个字符串没有意义。

您可以使用
regex

lines=open('file.txt', 'r').readlines()
[re.search(r'\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}',line).group(0) for line in lines: if 'Inintialize All' in line]

你有没有尝试过解决这个问题?如果你知道initialize all在行中,为什么要打印它?我会加入其他短语,比如“Uninitialize all”,理想情况下,我会创建一个包含描述事件列的文档-“initialize”或“Uninitialize”,其中包含日期和时间,只需手动设置即可,如果
initialize
在行中,则使用initialize
elif
取消初始化
在行中使用取消初始化谢谢,非常有用-您能解释2s的使用吗?每一个代表什么?它是
maxslit
m它只意味着拆分两次,而不是拆分整个字符串,拆分整个字符串没有意义,因为我们只需要前两个子字符串<代码> S.SPLITE():(2)将在默认情况下在空白上拆分,但是正如前面所提到的,没有PoT分裂整个字符串。请考虑编辑答案以包含额外的信息。缩进不好,或者在行首有额外字符,或者。。。
s = "14-09-23 13:47:46.053 -07 000000027 INF: Initialize All start"
if "Initialize All" in s: # check for substring
     date, time = s.split(" ",2)[:2] # split on whitespace and get the first two elements
     print date,time

14-09-23 13:47:46.053
lines=open('file.txt', 'r').readlines()
[re.search(r'\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}',line).group(0) for line in lines: if 'Inintialize All' in line]