直观的python目录树管理

opath的Python项目详细描述


| Travis Build Coverage Status PYPI版本许可证:MIT

Build/Coverage Status
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

+——+——————————————————————————————————|
+====================================================================================================================================================================================================覆盖状态||
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————**odir**允许您通过将
目录树视为一级对象来构建目录树。

**文档**可以在这里找到
https://opath.readthedocs.io/en/latest/


**不带odir**


。代码::python

定义路径
top=os.path.abspath('top')
middle=os.path.join(str(top),'middle')
bottom=os.path.join(str(middle),'bottom')
os.makedirs(bottom)
打开(os.path.join(bottom,'bottomlog.txt','w')作为f:
f.write("一些日志信息")

**带odir**


…代码::python

定义路径
env=odir('top').add('middle').add('bottom').root
env.bottom.write('log.txt','w','some log information')

代码::bash


不过,odir为管理大型目录树结构提供了一些有用的特性。\*将目录和文件结构树构建为
抽象树\*使用自定义属性名快速访问深度嵌套的目录和文件
目录和文件被视为
python对象中的嵌套属性

图::images/dir_example.gif?raw=true
:alt:live示例

live示例


创建、移动或删除目录树非常容易。例如,
下面为这个repo构建目录框架。

…图:images/directory_example.png?raw=true
:alt:demo

demo

。代码::python


from opath import*

\create folder structure
env=odir('opath')
env.add('opath',alias='core')
env.core.add('tests')
env.tests.add('env')
env.tests.add('env2')

测试自述文件')
env.core.write("\uuu init_uuuuuuuuy","w","uuuu version_uuu=\"1.0")

图:images/rmdirs\u example.gif?raw=true
:alt:rmdirs示例

rmdirs示例

代码::python

print(env.test.abspath)绝对路径
print(env.test.path)相对路径

代码::python将文件写入"test"文件夹


链式的使复杂的事情变得容易。普雷特太酷了!

…代码::python

'r')

d.stat().st_mtime)


关于链接方法的更好的文档很快就会与
菜谱一起出现。


基本用法
==



使用"add"创建文件夹。

代码::来自opath import的python


env.add('subfolder1')
env.add('subfolder2')
env.print()

>;
*bin
*子文件夹1
*子文件夹2


代码::python

env=odir('bin')
env.add('subfolder1').add('subsubfolder')
env.print()

>;
*bin
*subfolder1
*subfolder

代码::python

env=odir('bin')
env.add('subfolder1').add('subfolder')
env.subfolder.write('my data','w')


代码::python

env=odir('bin')
env.add_file('myfile.txt',attr='myfile')
env.myfile.write('this is my data','w')

folders自动创建可访问的odir属性。可选的
属性名可以使用"alias="设置

…代码::python

env=odir('bin')
env.add('subfolder1')
env.subfolder1.add('misc')
env.subfolder1.misc.add('.hidden',alias='hidden')
env.subfolder1.misc.hidden.add('hiddenbin')
env.print()

*bin
||*misc
*.hidden("hidden")
*hiddenbin

默认情况下,属性被*推回到根目录。下面的
与上面的相同。

…代码::python

env=odir('bin')
env.add('subfolder1')
env.subfolder1.add('misc')
env.misc.add('.hidden',alias='hidden')
env.hidden.add('hidden bin')
env.print()

*bin
*子文件夹1
*misc
*hiddenbin
以及删除目录
=================


=========


根文件夹的位置可以通过``set_bin``

。代码::python

env.set-bin('../bin')


代码::python

env.mkdirs()
env_copy=env.cpdirs()
用链条固定在
一个衬垫中。

…代码::python返回一个链表对象

env.descendants();查找所有txt文件
env.descendants(包括@self=true).glob("*.txt")


| travis build图像::https://img.shields.io/travis/jvrana/oph.svg
:目标:https://travis ci.org/jvrana/oph
…|覆盖状态图像::https://coveralls.io/repos/github/jvrana/oph/badge.svg?branch=master
:目标:https://coveralls.io/github/jvrana/opath?分支=主
…| pypi版本image::https://badge.fury.io/py/repo.svg
:目标:https://badge.fury.io/py/repo
|许可证:mit image::https://img.shields.io/badge/license mit yellow.svg
:目标:https://opensource.org/licenses/mit
…| travis build图像::https://img.shields.io/travis/jvrana/oph/master.svg
:目标:https://travis ci.org/jvrana/oph/master
。| travis build image::https://img.shields.io/travis/jvrana/opath/development.svg
:目标:https://travis ci.org/jvrana/opath/development
。|覆盖状态图像::https://coveralls.io/repos/github/jvrana/oph/badge.svg?分支=开发
:目标:https://coveralls.io/github/jvrana/opath?分支=开发

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

推荐PyPI第三方库


热门话题
java ajax请求不允许POST请求   java引用Android应用程序中其他模块的通用模块   JavaSpringBootWebFluxFlatmap是链接http调用的正确方法吗?   java如何在底部工作表中设置折叠工具栏?   任务“:compileJava”的java执行失败。“>无效的源版本:1.7   java Rabbit MQ不刷新ACK?   JavaWebSphere7:METAINF/config/ibmaxis2。无法正确加载xml Axis2全局配置文件   在Java中找出字符串是否包含数组中的值   java Liquibase通过Springboot执行postgres方法   java在Eclipse中安装Maven而不使用插件   Swing应用程序中的java SMTP错误   web应用程序InvalidKeyException:Java中使用RSA密钥的密钥格式无效   java显示JFrame作为JButton单击的结果?   java如何保留Apache Camel Exchange的属性,如果消息是从RabbitMQ生成和使用的   java使用流提取哈希映射列表中的所有对象   Android应用程序中的java单词检查器