Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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_Python 3.x_Tomcat9 - Fatal编程技术网

有没有一种方法可以从我在Python中停止的地方读取文件?

有没有一种方法可以从我在Python中停止的地方读取文件?,python,python-3.x,tomcat9,Python,Python 3.x,Tomcat9,我试图用Python读取一个文件,关闭它,然后从我停止读取的地方再次读取它 真正的问题是:我试图处理一个每小时更新一次的Tomcat日志文件。因此,当我从Python端读取它时,我会得到重复的旧日志和新日志 编辑:是否有一种从公共文件读取新日志的有效方法 看看你在哪里:offset=f 回到你原来的地方:f.西科夫塞特 如果您有选择,让Tomcat日志每一小时旋转一次。在这种情况下,您只需读取日志目录中的未读文件。您可以使用它,它读取尚未读取的日志文件行意味着它将从上次处理或停止的位置开始 fr

我试图用Python读取一个文件,关闭它,然后从我停止读取的地方再次读取它

真正的问题是:我试图处理一个每小时更新一次的Tomcat日志文件。因此,当我从Python端读取它时,我会得到重复的旧日志和新日志

编辑:是否有一种从公共文件读取新日志的有效方法

看看你在哪里:offset=f

回到你原来的地方:f.西科夫塞特


如果您有选择,让Tomcat日志每一小时旋转一次。在这种情况下,您只需读取日志目录中的未读文件。

您可以使用它,它读取尚未读取的日志文件行意味着它将从上次处理或停止的位置开始

from pygtail import Pygtail
for line in Pygtail("path to your log file"):
    '''
    the process which you want to do
    '''
在关闭文件之前,请保存您停止的行号 使用linecache模块将该行获取为当前行 这里有一些你可以使用的代码 导入linecache模块

导入行缓存

定义要从中读取的文件的名称

filename=test.txt

定义行号

线号=3

检索特定行

line=linecache.getlinefilename,行号

打印第%i行,共%s行:%n行号,文件名


打印行

为什么需要关闭它?你可以保存你阅读的行数,下次跳过这些行,因为我不想在tomcat更新时保持它打开。这真的值得优化吗?这听起来像是一个很好的例子。