文件和文件名/路径名的便利函数和类
cs.fileutils的Python项目详细描述
文件和文件名/路径名的各种便利功能。
函数abspath_from_file(path,from_file)
返回路径相对于
from_file的绝对路径,
就像一个include文件一样。
类backedfile
mro:readmixin
野鸭
对初始数据使用备份文件
并将新数据写入前端暂存文件。
方法backedfile.\uu init(self,back_file,dirpath=none)
对备份数据使用back_file
初始化备份文件。
类backedfile\u testmethods
用于测试backedfile子类的mixin。 测试自我支持的功能。
函数比较(f1,f2,mode='rb')
比较两个类似文件的对象f1
和f2
的内容是否相等。
如果f1
或f2
是字符串,请使用模式打开命名文件
(默认值:"rb")。
函数复制数据(fpin、fpout、nbytes、rsize=none)
将数据的nbytes
从fpin
复制到fpout
,
返回复制的字节数。
参数:
nbytes
:要复制的字节数。 如果无
,请复制到EOF。rsize
:读取大小,默认值
函数datafrom_fd(fd,offset,readsize=none,aligned=true,maxlength=none)
用于从偏移量
产生数据的文件描述符的通用读取器。
这不会移动文件偏移量。
函数文件数据(fp,nbytes=none,rsize=none)
从fp
读取nbytes
的数据,并将数据块作为已读数据产生。
参数:
nbytes
:要读取的字节数;如果在EOF之前没有读取。rsize
:读取大小,默认为读取大小。
函数文件属性(func)
如果文件列表中的任何一个发生更改,其值将重新加载的属性。
这只是make_files_property()的默认模式。
func
接受文件路径并返回新值。
基本属性名为'\u'+func.名称,
make_files_property()的默认值。
属性{attr\u name}u lock控制对属性的访问。
属性{attr\u name}文件状态和{attr\u name}路径跟踪
关联的文件状态。
属性{attr}u last poll跟踪上次轮询时间。
修饰后的函数被传递给当前的文件列表 并返回新的文件列表和关联的值。 一个例子是一个配置文件 include操作;内部函数将解析第一个 列表中的文件,解析将累积此文件名 以及任何包含的文件,以便监视它们, 如果有更改,则触发新的分析。例子:
class C(object):
def __init__(self):
self._foo_path = '.foorc'
@files_property
def foo(self,paths):
new_paths, result = parse(paths[0])
return new_paths, result
在第一次访问和每个 此后,如果关联文件的fileState()具有 已更改,并且自上次成功加载以来的时间超过 投票率(1)。试图避免比赛是由 忽略引发异常的重新加载,忽略重新加载 其中在更改检查期间stat()的文件 加载后更改了状态。
函数行数(fp,partials=none)
生成从文件到EOF的行的生成器。 用于缺少行迭代API的类似文件的对象。
函数lockfile(path,ext=none,poll\u interval=none,timeout=none,runstate=none)
获取并保存锁文件的上下文管理器。
参数:
路径
:与锁定文件关联的基。ext
:用于构造锁文件名的基的扩展名。 默认值:".lock"超时
:等待的最长时间在失败之前。 默认值:无
(永远等待)。轮询间隔
:超时不为0时的轮询频率。runstate
:支持取消的可选runstate duck实例。
函数长路径(路径,环境=无,前缀=无)
returnpath
并替换前缀和环境变量。
shortpath()的逆运算。
函数make_files_property(attr_name=none,unset_object=none,poll_rate=1.0)
构造一个监视多个关联文件的装饰器。
参数:
属性名
:底层属性,默认值:'''+func.名称未设置对象
:未初始化的哨兵值,默认值:无轮询率
:轮询文件更改的频率(秒),默认值:1
属性{attr\u name}u lock控制对属性的访问。 属性{attr\u name}文件状态和{attr\u name}路径跟踪 关联文件的状态。 属性{attr}u last poll跟踪上次轮询时间。
修饰后的函数被传递给当前的文件列表 并返回新的文件列表和关联的值。 一个例子是一个配置文件 include操作;内部函数将解析第一个 列表中的文件,解析将累积此文件名 以及任何包含的文件,以便监视它们, 如果有更改,则触发新的分析。例子:
class C(object):
def __init__(self):
self._foo_path = '.foorc'
@files_property
def foo(self,paths):
new_paths, result = parse(paths[0])
return new_paths, result
在第一次访问和每个 此后,如果关联文件的fileState()具有 已更改,并且自上次成功加载以来的时间超过 投票率(默认为1)。试图避免比赛是由 忽略引发异常的重新加载,忽略重新加载 其中在更改检查期间stat()的文件 加载后更改了状态。
函数makelockfile(path,ext=none,poll\u interval=none,timeout=none,runstate=none)
创建一个锁文件并返回其路径。
可以使用os.remove删除锁定文件。 这是支持lockfile()的核心功能 上下文管理器。
参数:
路径
:与锁定文件关联的基, 通常是其访问被管理的文件系统对象。ext
:用于构造锁文件名的基的扩展名。 默认值:".lock"超时
:失败前等待的最长时间。 默认值:无
(永远等待)。 注意零是一个可接受的值 并要求锁在第一次尝试时成功。轮询间隔
:超时不为0时的轮询频率。runstate
:支持取消的可选runstate duck实例。 注意,如果提供了取消的运行状态 将不会尝试制作锁定文件。
函数max_后缀(dirpath,pfx)
计算现有的最高数字后缀 以前缀pfx开头的名称
这通常用作选择新数字后缀的起点。
函数mkdirn(路径,sep='')
创建一个名为path+sep+n的新目录,
其中,
n
超过任何已存在的名称。
参数:
路径
:基本目录路径。sep
:路径和n之间的分隔符。 默认值:"
类nullfile
丢弃输入的可写文件。
注意,这是而不是打开的os.devnull
;
它只是丢弃写操作,而不是底层文件描述符。
方法nullfile.\uu init(self)
将文件偏移量初始化为0。
类路径名
mro:内置.str
str的子类表示方便属性对
格式化与文件路径相关的字符串。
函数轮询文件(路径、旧状态、重新加载文件、丢失的确定=false)
通过轮询由fileState()获得的文件状态来监视文件的修改。 如果状态改变,调用reload_file(path)。 如果文件被修改并且 在重新加载文件后保持不变(稳定状态)。 否则返回(无,无)。
如果路径不能是os.stat()ed,这可能会引发一个oserror 当然,对于调用reload文件时出现的任何异常,也可以使用
如果missing_ok
为true,则操作系统stat()失败
使用enoent引发oserror将只返回(none,none)。
函数读取数据(fp,nbytes,rsize=none)
从fp
读取数据的nbytes
,返回数据。
参数:
nbytes
:要复制的字节数。 如果无
,请复制到EOF。rsize
:读取大小,默认值
函数读取(fp,rsize=none,tail_mode=false,tail_delay=none)
生成器,用于显示从打开的文件到EOF的文本或数据。
参数:
rsize
:读取大小,默认:默认读取大小tail_mode
:如果为true,则在eof处生成空块,允许恢复 如果文件增大。
类readmixin
一些有用的阅读方法可以适应课堂上不一定有的模式。
注意,这个mixin假设属性self.\u lock
是一个类似threading.rlock的上下文管理器。
使用此mixin的类应考虑重写默认值 .datafrom方法,使用更有效或更直接的方法。
函数重写(filepath,data,mode='w',backup_ext=none,do_rename=false,do_diff=none,empty_ok=false,overwrite_anyway=false)
用文件对象的数据重写文件路径
参数:
empty_ok
:如果不是真的,如果新数据是 空的。 默认值:false
无论如何覆盖
:如果为true(默认值false
), 跳过内容检查并无条件覆盖。备份扩展:如果是非空字符串, 在
filepath+backup\u ext>备份原始文件
执行diff
:如果不是无,则调用执行diff(filepath,tempfile)
执行重命名
:如果为true(默认为false), 将临时文件重命名为filepath
复制权限位之后。 否则(默认情况下),将tempfile复制到filepath
函数重写cmgr(路径名,mode=w,backup=none,keep_backup=false,do_rename=false,do_diff=none,empty_ok=false,overwrite_anyway=false)
重写作为上下文管理器显示的文件。
参数:
模式
:文件写入模式,文本默认为"W"。备份扩展名
:备份扩展名。无
表示无备份。 空字符串根据当前时间生成扩展名。保留备份
:即使一切正常,也保留备份文件。执行重命名操作
:将临时文件重命名为要更新的原始文件。执行diff
:在提交之前调用执行diff(路径名,临时文件)
。empty_ok
:不要认为空输出是错误。无论如何覆盖
:如果新的 数据相同。
类rwFileBlockCache
存储数据的临时文件。
方法rwfileblockcache.\uu init(self,pathname=none,dirpath=none,suffix=none,lock=none)
初始化文件。
参数:
路径名
:文件的路径。如果没有,则创建新的用文件 tempfile.mkstemp使用dir=dirpath
并取消该文件的链接一次 打开。dirpath
:文件的位置(如果由mkstemp生成,如上所述)。lock
:用作互斥锁的对象,允许与 一些外部系统。如果省略,将分配一个锁。
函数saferename(oldpath,newpath)
使用os.rename()重命名路径, 但如果目标路径已存在,则引发异常。 注:略带赛车味。
功能seecable(fp)
尝试测试类文件对象是否可见。
首先尝试iobase中的.seecable方法,否则尝试 从fp.fileno和stat()中获取文件描述符, 否则返回false。
函数短路径(路径,环境=无,前缀=无)
返回路径
并替换第一个匹配的前导前缀。
参数:
environ
:如果不是os.environ,则为环境映射前缀
:要考虑替换的(前缀,子字符串)的可选项; 每个前缀都受环境变量的影响 考虑前替换 默认设置为"$home/"替换为"~/"。
类tee
具有.write、.flush和.close方法的对象 将数据复制到多个输出文件。
方法tee.\uu init(self,*fps)
初始化tee;任何参数都被视为输出文件对象。
功能tee(fp,fp2)
上下文管理器从fp复制.write和.flush到fp2。
函数tmpdir()
返回暂存数据的默认临时目录的路径名, $tmpdir或'/tmp'。
功能tmpdirn(tmp=none)
用数字后缀创建一个新的临时目录。
函数trysaferename(oldpath,newpath)
成功时返回true,失败时返回false的saferename。