基于节点的文件系统目录抽象

node.ext.director的Python项目详细描述


用法

创建新文件

fromnode.ext.directoryimportFilefile_path='file.txt'f=File(name=file_path)# set contents via data attributef.data='data\n'# set contents via lines attributef.lines=['data']# set permissionsf.fs_mode=0o644# persistf()

读取现有文件

file_path='file.txt'f=File(name=file_path)assert(f.data=='data\n')assert(f.lines==['data'])assert(f.fs_mode==0o644)

包含二进制数据的文件

fromnode.ext.directoryimportMODE_BINARYfile_path='file.txt'f=File(name=file_path)f.mode=MODE_BINARYf.data=b'\x00\x00'assert(f.data==b'\x00\x00')# lines property won't work if file in binary modef.lines# raises RuntimeError

创建目录

fromnode.ext.directoryimportDirectorydir_path='.'d=Directory(name=dir_path)# add subdirectories and filesd['sub']=Directory()d['file.txt']=File()# set permissions for directoryd['sub'].fs_mode=0o755# persistd()

读取现有目录

dir_path='.'d=Directory(name=dir_path)
>>> d.printtree()<class 'node.ext.directory.directory.Directory'>: .
  <class 'node.ext.directory.directory.File'>: file.txt
  <class 'node.ext.directory.directory.Directory'>: sub

定义文件工厂

fromnode.extimportdirectoryclassPyFile(File):pass# set global factoriesdirectory.file_factories['.py']=PyFile# set local factoriesd=Directory(name='.',factories={'.py':PyFile})
# when reading .py files, PyFile is used to instanciate children
>>> withopen('foo.py','w')asf:... f.write('#')>>> d=Directory(name='.',factories={'.py':PyFile})>>> d.printtree()<class 'node.ext.directory.directory.Directory'>: .
  <class '...PyFile'>: foo.py

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

推荐PyPI第三方库


热门话题
java读取SSLSocket的最快或最佳方式   JavaGuice向类构造函数注入对象   java类不是抽象的,并且不会覆盖OnClickListener中的抽象方法onClick(视图)   java OpenGL 1.1更改颜色更改以前的颜色?   c#将Java/Android连接到。网络服务   java在节点上生成AES密钥   java Liferay与MarkLogic XDBC数据库集成   java使用静态初始化块来提高性能   java如何在需要不同参数的另一个方法中使用同一类中的方法   音频Java多种声音   Java显式引用转换   java Intellij,如何在maven项目中导入模块   java在什么条件下调用ELResolver的setValue方法?   java在beanshell中计算代码字符串并获取beanshell解释器返回的值   javascript将音频文件上载到服务器并从服务器响应设置图像   编码风格清理java代码,多个else if语句   java是否需要使此变量可变?   java线程未更新GlassPane上的进度条   java关闭调试模式@Vaadin Spring启动应用程序