文件和文件名/路径名的便利函数和类

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')

比较两个类似文件的对象f1f2的内容是否相等。

如果f1f2是字符串,请使用模式打开命名文件 (默认值:"rb")。

函数复制数据(fpin、fpout、nbytes、rsize=none)

将数据的nbytesfpin复制到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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何加载。java文件到编译器?   java写入文件和I/O   java日历返回错误的当前日期安卓   if语句if变量等于1(java)   java很难让Joda有时间使用我的bukkit插件   json如何创建基于java的应用程序,该应用程序将从网站获取输入   java如何在多页中打印大型JPanel   java my spinner在添加从firebase数据库中选择的多个值时被覆盖   java用Play框架覆盖HTTP方法   试图获取所有用户时,java错误请求400。Dto和表格   java支持bean加载图像后javascript自动调用JS函数   java在MTOM的@StreamingAttachment(Metro)中,Parsely的意思是什么   具有可抢占线程队列的多线程java执行器   Java Opencv connectedComponentsWithStats   java如何向数组中添加2D数组的数目   eclipse为什么我的Java Zork克隆不能正确循环?   java在哪里放置定制的第二个web。xml   java如何更改最近应用列表中显示的快照?   java Browser#getText()返回空字符串