python 文件路径操作方法(转)
Python编程语言在实际使用中可以帮助我们轻松的实现一些特殊的功能需求。在这里我们将会为大家详细介绍一下有关Python文件路径的相关操作技巧,从而方便我们在实际开发中获得一些帮助。
Python文件路径操作方法之1: os.listdir(path) //path为目录
功能相当于在path目录下执行dir命令,返回为list类型。举例:
- print os.listdir(’..’)
输出:
- [a,b,c,d]
Python文件路径操作方法之2: os.path.walk(path,visit,arg)
path :是将要遍历的目录
visit :是一个函数指针,函数圆形为:
- callback(arg,dir,fileList)
其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list
arg:传给visit用的,对walk没有什么作用
举例:
- def callback(arg,directory, files):
- print directory,
- print files,
- print arg
- print ‘——————–’
- os.path.walk(’.',callback, ‘123456′)
输出:
- . ['path0704.py', 'temp', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\
xd8\xd1\xa7\xcf\xb0.txt'] 123456 - ——————–
- .\temp ['temp.h', 'temp1'] 123456
- ——————–
- .\temp\temp1 ['abc.bmp'] 123456
如果想找到某个目录下所有文件,只需要在callback里面,在fileList中找出文件,即可
除此之外,还有一个函数可以用那就是os.walk,看10
Python文件路径操作方法之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’)
Python文件路径操作方法之4: os.path.splitext(filename)
把文件名分成文件名称和扩展名
- os.path.splitext(abc/abcd.txt)
- (’abc/abcd’, ‘.txt’)
Python文件路径操作方法之5: os.path.dirname(path)
把目录名提出来
- print os.path.dirname(”abc”)
- #输出为空
- print os.path.dirname(’abc\def’)
- abc
Python文件路径操作方法之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(’.')
Python文件路径操作方法之7:os.mkdir(path, [mode])
path为目录名: 这里有个要求,只能创建一级目录。比如path为 abc/def 则当前目录下必须存在abc 否则失败
Python文件路径操作方法之8: os.makedirs(path [,mode])
可以创建多级目录
Python文件路径操作方法之9:os.remove(path)
删除一个文件,一定是一个文件
- os.removedirs(path) 删除一个目录下所有东西
- os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer
Python文件路径操作方法之10:os.walk(path)
遍历path,返回一个对象,他的每个部分都是一个三元组(’目录x’,[目录x下的目录list],目录x下面的文件)
tupple(dirpath, dirnames, filenames),
其中第一个为起始路径,
第二个为起始路径下的文件夹,
第三个是起始路径下的文件.
dirpath是一个string,代表目录的路径,
dirnames是一个list,包含了dirpath下所有子目录的名字,
filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name).
举例:
- a = os.walk(’.')
- for i in a:
- print i
输出:
- (’.', ['abc', 'temp'], ['path0704.py', '\xc2\xb7\xbe\xb6\xcf\
xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt']) - (’.\\abc’, [], ['\xd0\xc2\xbd\xa8 BMP \xcd\xbc\xcf\xf1.bmp'])
- (’.\\temp’, ['temp1'], ['temp.h'])
- (’.\\temp\\temp1′, [], ['abc.bmp'])
eg:
# 例:遍历d盘下的所有文件夹及文件import os
# 遍历d盘下的所有文件夹及文件
for root, dirs, files in os.walk('d:/'):
print root # 输出路径名
for name in dirs: # 输出目录名
print '[D]',name
for name in files: # 输出文件名
print '(F)',name
>> d:/
>> [D] data
>> [D] 17jo
>> d:/data
>> (F) a.txt
>> d:/17jo
>> (F) b.txt
>> (F) c.txt
Python文件路径操作方法之11:shutil.copy(src,dst)
把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖
上面的Python文件路径的函数基本够用
其它文件移动操作还请看:shutil模块:High-level file operations
python 文件路径操作方法(转)的更多相关文章
- Python文件常用操作方法
Python文件常用操作方法 一.对File对象常用操作方法: file= open(file, mode='r', buffering=-1, encoding=None, errors=None, ...
- python文件路径分隔符的详细分析
写了挺久的python,文件分隔符的掌握肯定是必须的,但是我之前写的都是不规范的文件路径分隔符,例如‘’C:\User\temp\python.txt’,一直都没有报过错.也不知为啥,今天查阅资料才知 ...
- Python 文件路径
# 文件路径: # 1. 相对路径: 相对于当前程序所在的文件夹, 如果在文件夹内, 随便找, 直接写名字 # 如果不在这个文件夹内, 可能需要出文件夹或者进文件夹 # 出文件夹 ../ # 进文件夹 ...
- python 文件路径问题
需要用到 os 模块和 sys 模块 import os print(__file__)# 输出相对路径 print(os.path.abspath(__file__)) #输出绝对路径 # D:\P ...
- 【Fine学习笔记】python 文件l操作方法整理
python脚本可以对excel进行创建.读.写.保存成指定文件名,保存到指定路径的操作.整理了以下处理方法: 首先区别几个操作方式: "r" 以读方式打开,只能读文件 , 如 ...
- Python 文件路径设置
菜鸟教程:https://www.runoob.com/python/os-chdir.html Python官方文件教程:https://docs.python.org/3.9/library/os ...
- [项目实践] python文件路径引用的规则,记一次使用sys.path[0]的问题,及如何区分 ../与 ./的使用场景
下面是一个获取配置的代码 def getValue(self,section,option): """ @file: string,the name of the con ...
- Python文件路径操作
print(os.environ.get('HOME')) # 打印`HOME`这个环境变量 /Users/<> file_path = os.environ.get('HOME') + ...
- python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】
当你搜索 "获取当前文件路径" 时,有的文章会提到用os.getcwd(),但是这玩意要慎用! 废话不多说,直接上例子: E:\program_software\Pycharm\y ...
随机推荐
- 将CRUD封装到一个工具类中
package org.zln.hibernate.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; ...
- Netscaler GSLB的主备数据中心解决方案
Netscaler GSLB的主备数据中心解决方案 http://blog.51cto.com/caojin/1898182 GSLB的主.备数据中心解决方案思路: 其实这只是多数据中心的一个特例而已 ...
- [bzoj4071] [Apio2015]巴邻旁之桥
Description 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域 A 和区域 B. 每一块区域沿着河岸都建了恰好 1000000001 栋的建筑,每条岸边的建筑都从 0 编号到 10000 ...
- 对C++ templates类模板的几点补充(Traits类模板特化)
前一篇文章<浅谈C++ templates 函数模板.类模板以及非类型模板参数>简单的介绍了什么是函数模板(这个最简单),类模板以及非类型模板参数.本文对类模板再做几点补充. 文章目录1. ...
- 【NOIP模拟赛】与非 乱搞
biubiu~~~ 正解是线段树维护真值表,但是我觉得对于这道题来说乱搞就够了....... 我们发现如果我们把每一个数都一开始取反就会发现对于最后结果来说 x=x^1,x nand x=x|x ,x ...
- [COGS 2089.] 平凡的测试数据 带权并查集
差点就撸上LCT了....... 带权并查集就是在并查集的基础上稍作修改,我的用穿址实现的有人用记录原父亲来实现. #include<cstdio> #define N 300010 us ...
- 将一张表的主键(ID)重置为从1开始自增排列
如果你有一张表,你的主键是ID,然后由于测来测去的原因,你的ID不是从1开始连续的自增了. 终于有一天,使用这张表的某个系统要导入正式数据了,强迫症这时候就表现的明显了,浑身不自在, 这时候你就需要将 ...
- [bzoj 2818]欧拉函数
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2818 枚举最大公约数,对于每一个质数p,只需要求出1<=x,y<=(n/p)范 ...
- js中连写两个?:三元运算符语法解释
在angular 源码中有连写两个三元运算符的代码: var hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() :$loc ...
- Spring MVC 参数校验
转自:http://blog.csdn.net/eson_15/article/details/51725470 这一篇博文主要总结一下springmvc中对数据的校验.在实际中,通常使用较多是前端的 ...