python的文件系统抽象层

fs的Python项目详细描述


PyFileSystem2

python的文件系统抽象层。

PyPI versionPyPIBuild StatusCoverage StatusCodacy BadgeCode Health

文档

简介

把pyfilesystem的FS对象看作 python的file对象。就像文件对象抽象 单文件,fs对象抽象整个文件系统。

让我们以一段简单的代码为例。以下 函数使用PyFileSystem API计算非空的数量 目录中的python代码行。它递归地工作,因此它将 在所有子目录中查找.py文件。

defcount_python_loc(fs):"""Count non-blank lines of Python code."""count=0forpathinfs.walk.files(filter=['*.py']):withfs.open(path)aspython_file:count+=sum(1forlineinpython_fileifline.strip())returncount

我们可以按如下方式调用count_python_loc

fromfsimportopen_fsprojects_fs=open_fs('~/projects')print(count_python_loc(projects_fs))

project_fs = open_fs('~/projects')打开一个fs对象 映射到主文件夹中的projects目录。那个物体是 在计算代码行数时由count_python_loc使用。

要计算zip文件中的python代码行数,可以将 以下更改:

projects_fs=open_fs('zip://projects.zip')

或者计算ftp服务器上的python行数:

projects_fs=open_fs('ftp://ftp.example.org/projects')

不需要更改count_python_loc,因为pyfilesystem 为任何类似于 文件和目录的集合。本质上,它允许你写 与文件的物理位置和方式无关的代码 存储。

与纯粹使用标准库的版本相比:

defcount_py_loc(path):count=0forroot,dirs,filesinos.walk(path):fornameinfiles:ifname.endswith('.py'):withopen(os.path.join(root,name),'rt')aspython_file:count+=sum(1forlineinpython_fileifline.strip())returncount

这个版本类似于上面的pyfilesystem代码,但只会 使用操作系统文件系统。任何其他文件系统都需要 完全不同的api,您可能需要重新实现 os.walk的目录遍历功能。

学分

以下开发人员已为此项目贡献了代码和时间:

有关参与者的完整列表,请参见contributors.md。

PyFileSystem2欠下了一大笔人情 为原始版本贡献代码和思想的开发人员。

  • 瑞安·凯利
  • 安德鲁·舍勒
  • 本·汀比

如果我错过了任何人,请向我道歉,如果你的名字是 这里不见了。

支架

如果需要商业支持,请联系Will McGugan

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

推荐PyPI第三方库


热门话题
Android上已连接音频输入设备的java列表   java是创建类的新对象还是使用静态方法?   Java:Shift/Rotate对象数组   Java Casting ArrayIterator<Object>   在java中返回布尔值时出错   无法确定文本文件读入程序(java)中的各种元素   Java Swing JToolBar   JAVAlang.IllegalStateException执行Ghost4J(Linux 32对64位)   jvm如何增加ubuntu系统的java堆化?   java CORS策略“AccessControlAllowOrigin”(Anguar 8和Servlet)   使用dagger 2的java视图依赖项注入   单元测试中RxJava的java模拟活动生命周期   arraylist中的Java打印字符串   java返回值显示为0.0。为什么会这样?   java是clientserver应用程序所必需的MVC吗?   ByteToMessageDecoder类中的java内存泄漏   java将大量文档写入firestore   GWT项目中的java TomcatMaven插件。两者之间的区别是什么:org。科德豪斯。魔咒和组织。阿帕奇。公猫maven插件   java swing:向JTree项添加自定义图形按钮