我试图在Python中读取一个更改的文件,脚本可以处理新添加的行.我有下面的脚本打印出文件中的行,但不会终止.
with open('tmp.txt','r') as f:
while True:
for line in f:
print(line.replace('\n',''))
Run Code Online (Sandbox Code Playgroud)
其中'tmp.txt'由一些行组成,例如:
a
d
2
3
Run Code Online (Sandbox Code Playgroud)
如果我附加到'tmp.txt'文件,例如使用:
echo "hi" >> tmp.txt
Run Code Online (Sandbox Code Playgroud)
如果脚本使用Python 3运行,脚本将打印出新行,而不是Python 2.在Python 2中是否存在等效脚本?在这种情况下,两个版本的Python有什么不同?
在Minecraft中,我希望找到一种方法来自动阅读聊天,如下图所示

为了将虚拟商店中进行的事务记录到PostgreSQL数据库中.最好使用Python.我不拥有Minecraft服务器.
我的计划是找到一种直接读取Minecraft服务器发送的数据包的方法(首选可靠性,但难度不大),或者作为备份计划可能会弄清楚如何屏蔽文本.我找到了一些资源,可以让我将字体更改为monospaced,这将提供更可靠的字体读取方式,我相信在屏幕上为每个字符创建完美一致的位置.我可以面对一个接近黑色但不完全的方向,但不愿意这样做.如上图所示,您可以看到有许多不同颜色的字体可供使用.
即使在如上所述减少它之后,我仍然不确定如何使用python将其转换为文本.
关于我的方法的任何提示?有关如何读取来自服务器的数据包的任何提示?有关从屏幕上抓取文字的提示吗?
我使用以下代码跟踪ssh登录:
def follow(thefile):
thefile.seek(0,2)
while True:
line = thefile.readline()
if not line:
time.sleep(0.1)
continue
yield line
if __name__ == '__main__':
logfile = open('/var/log/auth.log', 'r')
loglines = follow(logfile)
for line in loglines:
print 'do something here'
Run Code Online (Sandbox Code Playgroud)
我注意到该脚本在几天后突然停止工作。我没有任何错误,它不会终止,只会停止工作,好像readline()永远不会返回。
所以我执行了a echo 'test' >> auth.log.1,这的确是被脚本处理了,因为前一段时间auth.log将其重命名为auth.log.1
如何跟踪这种日志轮换的时间并进行相应调整?