gpt4 book ai didi

python - 使用python如何同时对多个文件执行此代码?

转载 作者:行者123 更新时间:2023-11-30 23:46:57 24 4
gpt4 key购买 nike

我想同时跟踪多个文件并将日志推送到抄写器。我正在从配置文件中读取文件,然后我想跟踪每个文件并将日志发送给抄写员。我尝试过的是仅发送第一个文件的日志,而不发送其他文件的日志。

我想对每个文件同时运行尾部,并同时发送每个文件的日志。

for l in Config.items('files'):
print l[0]
print l[1]
filename = l[1]
file = open(filename,'r')
st_results = os.stat(l[1])
st_size = st_results[6]
file.seek(st_size)
while 1:
where = file.tell()
line = file.readline()
if not line:
time.sleep(1)
file.seek(where)
else:
print line, # already has newline
category=l[0]
message=line
log_entry = scribe.LogEntry(category, message)
socket = TSocket.TSocket(host='localhost', port=1463)
transport = TTransport.TFramedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(trans=transport, strictRead=False, strictWrite=False)
client = scribe.Client(iprot=protocol, oprot=protocol)
transport.open()
result = client.Log(messages=[log_entry])
transport.close()

最佳答案

尝试这样的事情(Inspired by this)

import threading

def monitor_file(l):

print l[0]
print l[1]
filename = l[1]
file = open(filename,'r')
st_results = os.stat(l[1])
st_size = st_results[6]
file.seek(st_size)
while 1:
where = file.tell()
line = file.readline()
if not line:
time.sleep(1)
file.seek(where)
else:
print line, # already has newline
category=l[0]
message=line
log_entry = scribe.LogEntry(category, message)
socket = TSocket.TSocket(host='localhost', port=1463)
transport = TTransport.TFramedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(trans=transport, strictRead=False, strictWrite=False)
client = scribe.Client(iprot=protocol, oprot=protocol)
transport.open()
result = client.Log(messages=[log_entry])
transport.close()


for l in Config.items('files'):
thread = threading.Thread(target=monitor_file, args=(l))

关于python - 使用python如何同时对多个文件执行此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com