python文件和zip操作变得简单

flametree的Python项目详细描述


flametree是一个python库,它提供了处理文件和文件夹的简单语法 (没有os.path.joinos.listdir等),并且对不同的文件系统使用相同的方法。

编写一个flametree程序来读/写磁盘文件夹中的文件,您的代码也将 能够读取/写入ZIP存档和虚拟(内存)存档-这是特别 在Web服务器上很有用。

例如,下面是如何使用flametree读取文件texts/poems/the_raven.txt,全部替换 文本中出现“海鸥”所指的“乌鸦”一词,并将结果写入一个新的 同一文件夹中的文件the_seagull.txt

fromflametreeimportfile_treewithfile_tree("texts")asroot:poem_text=root.poems.the_raven_txt.read()new_text=poem_text.replace("raven","seagull")root.poems._file("the_seagull.txt").write(new_text)

即使在这个非常简单的用例中,语法也比os方式更清晰, 其内容如下:

importoswithopen(os.path.join("poems","the_raven.txt"),"r")asf:poem_text=f.read()new_text=poem_text.replace("raven","seagull")withopen(os.path.join("poems","the_seagull.txt"),"w")asf:content=f.write(new_text)

此外,相同的flametree代码也适用于zip归档文件中的文件:

withfile_tree("my_archive.zip")asroot:poem_text=root.poems.the_raven_txt.read()new_text=poem_text.replace("raven","seagull")root.poems._file("the_seagull.txt").write(new_text)

现在处于硬模式:假设您的服务器接收 包含poems/the_raven.txt的存档,并且必须返回一个新的zip 包含文件poems/the_seagull.txt。在这里,核心的语法 操作相同:

destination_zip=file_tree("@memory")# Create a new virtual zipwithfile_tree(the_raven_zip_data)asroot:poem_text=root.poems.the_raven_txt.read()new_text=poem_text.replace("raven","seagull")destination_zip._dir("poems")._file("the_seagull.txt").write(new_text)destination_zip_data=destination_zip._close()# Now send the data to the client

有关更多示例和功能,请参见下面的usage部分。

信息

pip安装:

pip install flametree

github页

https://github.com/Edinburgh-Genome-Foundry/Flametree

许可证:麻省理工学院,爱丁堡基因组铸造厂版权所有

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

推荐PyPI第三方库


热门话题
java找不到当前线程的会话   同步Java同步方法调用非同步方法   这段代码的java时间复杂度是如何列出一个集合的所有子集的?   java Jetty SslConnectionFactory nextProtocol   为什么在java集合中使用游标而不是for循环   java如何对长函数进行单元测试?   如何从java中的文本输入创建数组   java工具栏内容未显示,尽管出现了片段内容   java MediaPlayer无法处理本地文件   java在多次读取时,从TCP服务器读取的数据将挂起   java组织。springframework。数据领域无法将PageImpl强制转换为   java如何使用@WithMockUser并从属性文件中传递用户名和密码?   JavaSpringBootGradle插件2。x如何使用自定义启动器布局工厂   sockets Java客户端和服务器之间使用字符串等进行通信的“行业标准”方法是什么   java变量引用不存在的资源:${project\u loc:project\u name}   搜索如何返回LDAP Java中所有用户的特定属性?   JDK1.8.016x的java密钥斗篷代理问题   spring如何使用Java中的Exchange获取邮件   java Kotlin+Dagger 2:Dagger*文件不会生成   如何在传入的double上执行操作,然后在Java中返回