python文件和路径操作

简介: 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型print os.listdir('..') 2: os.path.walk(path,visit,arg) path :是将要遍历的目录visit :是一个函数指针,函数...

1: os.listdir(path) //path为目录

功能相当于在path目录下执行dir命令,返回为list类型
print os.listdir('..')

2: os.path.walk(path,visit,arg)

path :是将要遍历的目录
visit :是一个函数指针,函数圆形为:
callback(arg,dir,fileList)
其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit用的

3: os.path.split(path)

path 为一个路径,

输出,把path分成两部分,具体看实例:
print os.path.split("abc/de.txt")
('abc', 'de.txt')
os.path.split("abc")
(", 'abc')
print os.path.split("de/abc/de")
('de/abc', 'de')

4: os.path.splitext(filename)
把文件名分成文件名称和扩展名
os.path.splitext(abc/abcd.txt)
('abc/abcd', '.txt')

5: os.path.dirname(path)
把目录名提出来
print os.path.dirname("abc")
#输出为空
print os.path.dirname('abc\def')
abc

6: os.path.basename(filename)
取得主文件名
print os.path.basename('abc')
abc
print os.path.basename('abc.txt')
abc
print os.path.basename('bcd/abc')
abc #这个需要注意不包括目录名称
print os.path.basename('.')
.

7:os.mkdir(path, [mode])
path为目录名: 这里有个要求,只能创建一级目录
比如path为 abc/def 则当前目录下必须存在abc 否则失败

8: os.makedirs(path [,mode])
可以创建多级目录

9:os.remove(path)删除一个文件,一定是一个文件
os.removedirs(path) 删除一个目录下所有东西
os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer

10:os.walk(path)
遍历path,返回一个对象,他的每个部分都是一个三元组
('目录x',[目录x下的目录list],目录x下面的文件)

举例:
a = os.walk('.')
for i in a:
print i

11:shutil.copy(src,dst)
把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖

――――――――――――――――――

11.1 os.path -- 普通的路径名操作

这个模块实现一些在路径名称上有用的函数。

警告:在 Windows 上,这些函数中的多个不能正确地支持 UNC 路径名。splitunc() 和 ismount() 可以正确地处理它们。

abspath(path)
    返回 path 路径名一个规格化的绝对化的版本。在大多数平台上,相当于normpath(join(os.getcwd(), path))。1.5.2版本中的新特性。

basename(path)
    返回 path 路径名最底部的名称。这是由 split(path)返回的对的第二半部分。注意这个函数的结果不同于Unix basename 程序;UNIX的 basename对于'/foo/bar/' 返回 'bar',basename() 函数返回一个空字符串('')。

commonprefix(list)
    返回最长的路径前缀(采取字符的字符),是 list中所有路径的一个前缀。如果 list 为空,返回空字符串('')。注意可以返回无效的路径因为它每次操作一个字符。

dirname(path)
    返回 path 路径名的目录名称。这是由 split(path)返回的对的第一半部分。

exists(path)
    如果 path 与一个已存在的路径关联返回True。对于损坏的符号连接返回 False 。在一些平台上,如果权限没有被授予在请求的文件上执行os.stat()这个函数可能返回False,即使该 path 实际上存在。

lexists(path)
    如果 path 与一个已存在的路径关联返回 True 。对于损坏的连接返回 True 。在一些缺少 os.lstat()的平台上相当于 exists() 。2.4版本中的新特性。

expanduser(path)
    在 Unix上,返回 "~"或"~user"做为替换用户的主目录的开始部分的参数。开始的"~" 通过环境变量 HOME(如果它被设置)替换; 否则当前用户的主目录在口令目录中通过内置模块 pwd被查询。开始的"~user" 直接地在口令目录中被查询。

    在 Windows 上,仅支持 "~" ;它通过环境变量 HOME 或通过HOMEDRIVE 和 HOMEPATH的组合替换。

    如果该扩充失败或如果该路径不以一个波浪号开始,被返回的路径无改变。

expandvars(path)
    返回使用环境变量扩充的参数。"name""{name}"格式的子串通过环境变量 name 的值被替换。残缺的变量名称和引用不存在的变量被无改变的遗弃。

getatime(path)
    返回 path 的最后访问时间。返回的值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。

getmtime(path)
    返回 path 最后修改的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。

getctime(path)
    返回系统的 ctime ,在一些系统上 (像Unix) 是最后改变的时间,在其他一些系统上 (像Windows),是 path 创建的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。2.3版本中的新特性。

getsize(path)
    以字节为单位,返回 path 的大小。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。

isabs(path)
    如果 path 是一个绝对路径名返回True (以一个斜杠开始)。

isfile(path)
    如果 path 是一个已存在的普通文件返回True 。这效仿符号连接,因此 islink() 和 isfile() 对于相同的路径都可以返回 true 。

isdir(path)
    如果 path 是一个已存在的目录返回 True 。这效仿符号链接,因此 islink() 和 isdir() 对于相同的路径都可以返回 true 。

islink(path)
    如果 path 引用一个目录项,它是一个符号连接,返回True。如果不支持符号连接始终返回 False 。

ismount(path)
    如果路径名 path是一个 挂载点 返回 True :在文件系统中的那个点一个不同的文件系统已经被挂载。这个函数检测是否 path的父路径, path/..,和 path 是一个不同的设备,或是否 path/.. 和 path 在相同的设备上指向相同的i-node -- 这应该是为所有的 Unix 和 POSIX 变种检测挂载点。

join(path1[, path2[, ...]])
    智能化地连接一个或多个路径组件。如果任一组件是一个绝对路径,所有前面的组件被丢弃(在Windows 上,包括前面的驱动器名,如果有) ,并且继续连接。返回的值是 path1,和可选地 path2等的组合,正确地以一个目录分隔符 (os.sep)插入到两个组件之间,除非 path2 为空。注意在 Windows 上,因为每个驱动器有一个当前目录,os.path.join("c:", "foo")表示相对于驱动器 C: 上的当前目录的一个路径(c:foo),而不是 c:\\foo。

normcase(path)
    标准化一个路径名的大小写。在Unix上,返回未改变的路径;在不区分大小写的文件系统上,它转换路径为小写字母。在Windows上 ,它也转换正斜杠为反斜杠。

normpath(path)
    标准化一个路径名。折叠多余(或冗长的)分隔符并且定位于外层引用,以致于 A//B,A/./B 和 A/foo/../B 都变成 A/B。它不标准化大小写(标准化大小写用 normcase())。在Windows上,它转换正斜杠为反斜杠。如果它包含符号连接,它应该明白这可能改变路径的意图!

realpath(path)
    返回指定的文件名标准的路径,除去在路径中遇到的任何符号连接(如果操作系统支持)。2.2版本中的新特性。

samefile(path1, path2)
    如果路径名参数与相同的文件或目录关联返回 True (通过设备号和 i-node 数表示)。如果 os.stat() 调用每个路径名失败挂起一个异常。有效的:Macintosh,Unix。

sameopenfile(fp1, fp2)
    如果文件描述符 fp1 和 fp2 与相同的文件关连返回 True 。有效的:Macintosh,Unix。

samestat(stat1, stat2)
    如果 stat 元组 stat1和stat2 与相同的文件关连返回 True 。这个结构可能由fstat(),lstat(),或stat()返回。这个函数使用samefile() 和 sameopenfile()实现了基本的比较。有效的:Macintosh,Unix。

split(path)
    分割路径名 path 到一个对中,(head, tail)中 tail 是最后的路径名组件head 是引导它的任何事物。tail 部分将一直都不包括斜线;如果 path 以一个斜线结尾,tail 将为空。如果 path 中没有斜线,head 将为空。如果 path 为空,head 和 tail 都为空。尾随斜线从 head 中被去除,除非它是根(one or more slashes only)。在几乎所有的情况中,join(head, tail) 相当于 path (只有一个例外是当从 tail 中 head 被多个斜线分割时)。

splitdrive(path)
    分割路径名 path 到一个(drive, tail) 对中,drive 是每个驱动器的说明或空字符串。在系统上不使用驱动器说明的,drive 将一直是空字符。在所有情况中,drive + tail 将和 path 相同。1.3版本中的新特性。

splitext(path)
    分割路径名 path 到一对 (root, ext) 中以致 root + ext == path,并且ext 为空或以一个句点开始并且只多包含一个句点。

splitunc(path)
    分割路径名 path 到一个对(unc, rest)中以便于 unc 是 UNC 挂载点 (诸如 r'\\host\mount'),如果,并且 rest 路径的其余部分(诸如 r'\path\file.ext')。对于路径包含驱动器名,unc 将一直是空字符。有效的:Windows。

walk(path, visit, arg)
    对于以 path 为根的目录树中的每一个目录 (包含 path 自身,如果它是一个目录),以参数 (arg, dirname, names)调用函数 visit 。参数 dirname 指定访问的目录,参数 names 列出在目录中的文件(从 os.listdir(dirname)中得到)。visit 函数可以修改 names 改变 dirname 下面访问的目录的设置,例如,避免访问树的某一部分。(由 names 关连的对象必须在合适的位置被修改,使用 del 或 slice 指派。)

    注意:符号连接到目录不被作为一个子目录处理,并且因此 walk()将不访问它们。访问连接的目录你必须以os.path.islink(file) 和 os.path.isdir(file)标识它们,并且必须调用walk() 。
作者: Shane
出处: http://bluescorpio .cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
打赏
0
0
0
0
216
分享
相关文章
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
61 20
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
105 8
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
90 7
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
4月前
|
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
199 2
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。

热门文章

最新文章