我正在建立一个系统,以.txt格式对一些.log文件进行排序,以便我以后可以将它发送到excel。有70多个文件,并且在每个文件中我都在扫描一个关键字,我得到100多个字符串,我想要保存在.txt中。我可以获取我想要的每个字符串,并查看每个日志已经从哪个.log文件中获取,但现在我想重命名.log来自的文件以及相应的数字(每个文件一个数字)。我已经尝试过计算循环,数组和字符串,但我不会让我正确....
import glob
import os
import itertools
def LogFile(filename, tester):
message = []
data = []
with open(filename) as filesearch: # open search file
filesearch = filesearch.readlines() # read file
file = filename[39:]
for line in filesearch:
if tester in line: # extract ""
start = '-> '
end = ':\ '
number = line[line.find(start)+3: line.find(end)] #[ord('-> '):ord(' :\ ')]
data.append(number) # store all found wors in array
text = line[line.find(end)+3:]
message.append(text)
with open('Msg.txt', 'a') as handler: # create .txt file
for i in range(len(data)):
handler.write(f"{file}|{data[i]}|{message[i]}")
# open with 'w' to "reset" the file.
with open('Msg.txt', 'w') as file_handler:
pass
# ---------------------------------------------------------------------------------
for filename in glob.glob(r'C:\Users\\Desktop\Access\*.log'):
LogFile(filename, 'Sending Request: Tester')
现在如何
from .txt file
GTX77_ 2017-05-20_1209.log|166 9 02 F
GTX77_ 2017-08-24_1209.log|166 9 03 F
JBB 925_1720_1400.log|161 9 02 F
JBB 925_1724_1900.log|161 9 12 F
我多么想要
new .txt file
1|166 9 02 F
1|166 9 03 F
2|161 9 02 F
2|161 9 12 F
所以我的问题是,是否有一些函数可以将变量“filename”更改为相应的数字(例如,文件GTX77.log中的所有.log文件都获得索引1,而来自JBB925的所有.log获取索引2 ...)
答案 0 :(得分:0)
您可以使用字典。您为每个文件名初始化它,然后您可以使用get(filename, default_value)
i=1
d = {}
for filename in filenames:
if not d.get(filename, False):
d[filename] = i
i+=1