相关疑难解决方法(0)

如何查看文件以进行更改?

我有一个日志文件由另一个进程编写,我想要观察更改.每次发生变化时,我都想读取新数据,对其进行一些处理.

最好的方法是什么?我希望PyWin32库中有一些钩子.我找到了这个win32file.FindNextChangeNotification功能,但不知道如何让它看到一个特定的文件.

如果有人做过这样的事情,我会非常感激听到......

[编辑]我应该提到我是在一个不需要轮询的解决方案之后.

[编辑]诅咒!这似乎不适用于映射的网络驱动器.我猜Windows不会像在本地磁盘上那样"听到"文件的任何更新.

python file pywin32 watch

306
推荐指数
14
解决办法
26万
查看次数

使用python以相反的顺序读取文件

如何使用python以相反的顺序读取文件?我想从最后一行到第一行读取一个文件.

python reverse file

112
推荐指数
7
解决办法
12万
查看次数

从Python迭代器获取最后一项的最简洁方法

在Python 2.6中从迭代器获取最后一项的最佳方法是什么?例如,说

my_iter = iter(range(5))
Run Code Online (Sandbox Code Playgroud)

什么是最短的代码/最干净的方式4来自my_iter

我可以做到这一点,但它看起来效率不高:

[x for x in my_iter][-1]
Run Code Online (Sandbox Code Playgroud)

python iterator python-2.7 python-3.x

102
推荐指数
8
解决办法
4万
查看次数

如何在Python中拖尾日志文件?

我想在Python中输出tail -F或类似的东西,而不会阻塞或锁定.我发现一些真正的旧代码到做在这里,但我想一定有更好的方法或通过图书馆现在做同样的事情.谁知道一个?

理想情况下,tail.getNewData()每次我想要更多数据时,我都会有类似的东西.

python tail

65
推荐指数
9
解决办法
11万
查看次数

在python中搜索文件的最后x行的最有效方法

我有一个文件,我不知道它会有多大(它可能很大,但尺寸会有很大差异).我想搜索最后10行左右,看看是否有任何一个字符串匹配.我需要尽可能快速有效地做到这一点,并且想知道是否有更好的东西:

s = "foo"
last_bit = fileObj.readlines()[-10:]
for line in last_bit:
    if line == s:
        print "FOUND"
Run Code Online (Sandbox Code Playgroud)

python search file

31
推荐指数
5
解决办法
4万
查看次数

有效地找到文本文件中的最后一行

我需要从一些非常大(几百兆字节)的文本文件中提取最后一行来获取某些数据.目前,我使用python循环遍历所有行,直到文件为空,然后我处理返回的最后一行,但我确信有一种更有效的方法来执行此操作.

使用python检索文本文件的最后一行的最佳方法是什么?

python text

31
推荐指数
6
解决办法
9万
查看次数

如何实现py -onic等价的tail -F?

对于某些关键字的出现,观察不断增长的文件尾端的pythonic方法是什么?

在shell中我可能会说:

tail -f "$file" | grep "$string" | while read hit; do
    #stuff
done
Run Code Online (Sandbox Code Playgroud)

python file tail

25
推荐指数
2
解决办法
2万
查看次数

python只读取大文本文件的结尾

可能重复:
使用Python获取文件的最后n行,类似于tail
使用python以相反的顺序读取文件

我有一个大约15GB的文件,它是一个日志文件,我应该分析输出.我已经对一个类似但非常小的文件进行了基本解析,只需几行日志记录.解析字符串不是问题.问题是巨大的文件及其包含的冗余数据量.

基本上我正在尝试制作一个我可以说的python脚本; 例如,给我5000个文件的最后一行.这又是基本的处理论点和所有这些,没有什么特别的,我可以做到这一点.

但是,如何定义或告诉文件阅读器只读取我从文件末尾指定的行数?我试图跳过文件开头的huuuuuuge数量,因为我对这些不感兴趣,说实话,从txt文件中读取大约15GB的行需要太长时间.有没有办法犯错误...从文件末尾开始阅读?这甚至有意义吗?

这一切都归结为读取15GB文件的问题,一行一行需要太长时间.所以我想在开始时跳过已经冗余的数据(至少对我来说是冗余的),只读取我想要读取的文件末尾的行数.

明显的答案是手动只是将N行的数量从文件复制到另一个文件,但有没有办法半自动地神奇地只是用python读取文件末尾的N行数?

python file

18
推荐指数
3
解决办法
1万
查看次数

Python - 如何打开文件并以字节为单位指定偏移量?

我正在编写一个程序,它会定期解析Apache日志文件以记录它的访问者,带宽使用情况等.

问题是,我不想打开日志并解析我已经解析过的数据.例如:

line1
line2
line3
Run Code Online (Sandbox Code Playgroud)

如果我解析该文件,我将保存所有行,然后保存该偏移量.这样,当我再次解析它时,我得到:

line1
line2
line3 - The log will open from this point
line4
line5
Run Code Online (Sandbox Code Playgroud)

第二轮,我会得到第4行和第5行.希望这是有道理的......

我需要知道的是,我该如何做到这一点?Python有seek()函数来指定偏移量...所以我只是在解析之后得到日志的文件大小(以字节为单位)然后在第二次记录它时使用它作为偏移量(在seek()中)?

我似乎无法想到一种编码方式>.<

python file-io byte offset

15
推荐指数
1
解决办法
3万
查看次数

如何快速获取一个巨大的 csv 文件的最后一行(48M 行)?

我有一个 csv 文件,它会一直增长到大约 48M 行。

在向它添加新行之前,我需要阅读最后一行。

我尝试了下面的代码,但它太慢了,我需要一个更快的替代方案:

def return_last_line(filepath):    
    with open(filepath,'r') as file:        
        for x in file:
            pass
        return x        
return_last_line('lala.csv')
Run Code Online (Sandbox Code Playgroud)

python python-3.x

15
推荐指数
2
解决办法
3292
查看次数

标签 统计

python ×10

file ×5

python-3.x ×2

tail ×2

byte ×1

file-io ×1

iterator ×1

offset ×1

python-2.7 ×1

pywin32 ×1

reverse ×1

search ×1

text ×1

watch ×1