python 文件和路径操作函数小结

From: http://www.jb51.net/article/21007.htm

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() 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Taro+react开发(56) 引用第三方icon

<AtIconclassName"que_header_left_icon"prefixClass"icon"value"icon-share"size"16"></AtIcon>

vue中使用better-scroll实现滑动

下载 better-scroll npm install better-scroll --save注意&#xff1a; 必须包含两个大的div&#xff0c;外层和内层div外层div设置可视的大小(宽或者高)-有限制宽或高内层div&#xff0c;包裹整个可以滚动的部分内层div高度一定大于外层div的宽或高(宽度大于外层是水平滚动…

RedHat Enterprise Linux 5下配置Apache+Mysql+Php

第一步&#xff1a;系统与软件的准备 系统版本 redhat enterprise linux v5.3 ,内核版本 2.6.18 第二步&#xff1a;软件包的准备 Apache2软件包&#xff1a;httpd-2.2.13.tar.gz php5软件包&#xff1a;php-5.3.0.tar.gz 第三步, 架设YUM仓库 由于系统连GCC都没有给我们安装&a…

使用pdb调试Python程序

From: http://blog.csdn.net/magicbreaker/article/details/3754733 本文讨论在没有方便的IDE工具可用的情况下&#xff0c;使用pdb调试python程序源码例子例如&#xff0c;有模拟税收计算的程序&#xff1a;#!/usr/bin/python def debug_demo(val): if val < 1600 : print …

【IDE插件】- XCode6代码注释之VVDocumenter

网盘地址&#xff1a;http://pan.baidu.com/s/1dDGQZw1 使用说明&#xff1a; 转&#xff1a;http://jingyan.baidu.com/article/c45ad29cc9e33c051653e210.html转载于:https://www.cnblogs.com/sunrise0707/p/4173217.html

Taro+react开发(57) 图片引入

<View className"img-title"><Imagemode"widthFix"src{item.fileImgs && item.fileImgs[0]}/></View>

改造input

效果图 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta http-equiv"X-UA-Compatible" co…

配置Windows Server2008故障转移集群

Abner Kou原创配置Windows Server2008故障转移集群一、 问题描述建立双节点的Windows Server 2008 故障转移集群&#xff0c;为Hyper-v的高可用和SQLServer集群做好准备。二、 配置集群群前的准备1、 每个节点主机配备至少两块网卡&#xff0c;一块用于连接共享存储&#xff0c…

简单调试 Python 程序

From: http://www.vpsee.com/2009/09/debug-python-programwith-pdb/ 在 Python 中也可以像 gcc/gdb 那样调试程序&#xff0c;只要在运行 Python 程序时引入 pdb 模块&#xff08;假设要调试的程序名为 d.py&#xff09;&#xff1a; $ vi d.py #!/usr/bin/pythondef main():…

css3修改input[type=radio]样式

在项目中经常&#xff0c;需要使用单选按钮input[typeradio]&#xff0c;但是浏览器的默认样式可能与我们需要实现的样式差距很大&#xff0c;可以使用css3来实现想要达到的效果&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

我们应当学会辞旧迎新——《不一样的天空》

乏味的人生&#xff0c;冷清的家庭&#xff0c;枯燥的工作&#xff0c;基本上是现代社会中大部分人的心声&#xff0c;随着时间的流逝&#xff0c;逐渐失去自我&#xff0c;沦为生活的奴隶。而这部电影也以同样的道理告诫我们&#xff0c;不要被一层不变的生活模式所吞噬&#…

在移动端a、input、label等标签点击后会出现背景阴影问题

解决方法&#xff1a; 将a,input,label{-webkit-tap-highlight-color:rgba(255,0,0,0);} 背景设置成透明的就解决了。

【leetcode】Search for a Range

题目描述&#xff1a; Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithms runtime complexity must be in the order of O(log n). If the target is not found in the array, return [-1, -1]. For example…

Taro+react开发(58) toHtml

<View className"que_header_title"><RichText nodes{helpDetail.content}></RichText>{/* <Text className"que_header_title_text">{helpDetail.content}</Text> */}</View>

Python的函数参数传递:传值?引用?

From: http://blog.csdn.net/winterttr/article/details/2590741 作者&#xff1a;winterTTr &#xff08;转载请注明&#xff09; 我想&#xff0c;这个标题或许是很多初学者的问题。尤其是像我这样的对C/C比较熟悉&#xff0c;刚刚进入python殿堂的朋友们 。C/C的函数参数的传…

linux常见紧急情况处理

1&#xff0e;使用急救盘组进行维护急救盘组&#xff08;也称为boot/root盘组&#xff09;&#xff0c;是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的Linux系统。实际上&#xff0c;急救盘组中的第2张盘上就有一个完整的Linux系统&#xff0c;包括root文件系…

Python 去除列表中重复的元素

From: http://www.cnblogs.com/infim/archive/2011/03/10/1979615.html 比较容易记忆的是用内置的set l1 [b,c,d,b,c,a,a]l2 list(set(l1))print l2还有一种据说速度更快的&#xff0c;没测试过两者的速度差别l1 [b,c,d,b,c,a,a]l2 {}.fromkeys(l1).keys()print l2这两种都…

[MODX] 2. Chunks $

Chunk in Modx can cut your template into samll pieces to make code reuseable. [[$chunk_name]] For example we can replace the html header with [[$html_header]], it should work as before. 转载于:https://www.cnblogs.com/Answer1215/p/4174762.html

React开发(149):二位数组的使用

二维数组的定义 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><script type"text/javascript">// 定义一维数组var arr1 [1,2,3,4]var arr2 [5,6,7,8]var ar…

田志刚:个人掌握知识的精髓

【编者按】很多人都在抱怨找不到自己的竞争力&#xff0c;不知道该如何与别人竞争&#xff1b;也有很多人眼睁睁的看着同部门其他同事业绩比自己高一大截&#xff0c;却非常迷茫的找不到差距……这些问题都是切实存在的&#xff0c;而且基本上在每个人身上都曾出现过&#xff0…