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 ...
随机推荐
- DataBase -- Second Highest Salary
Question: Write a SQL query to get the second highest salary from the Employee table. +----+-------- ...
- Citrix Netscaler版本管理和选择
Citrix Netscaler版本管理和选择 来源 http://blog.51cto.com/caojin/1898164 随着Citrix Netscaler的快速发展,有很多人在维护设备时经常 ...
- [洛谷P3413]SAC#1 - 萌数
题目大意:求$[l,r](0\leqslant l<r< 10^{1001})$中存在长度至少为$2$的回文串的数字数 题解:数位$DP$,发现如果有回文串,若长度为偶数,一定有两个相同的 ...
- Codeforces Round #525 (Div. 2)D. Ehab and another another xor problem
D. Ehab and another another xor problem 题目链接:https://codeforces.com/contest/1088/problem/D Descripti ...
- 自己实现的JDBC工具类
最近做了个后台应用程序,刚开始用Spring+iBatis来做的,后来因为种种原因,不让用Spring.iBatis以及一些开源的工具包. 于是用JDBC重写了原来的Service实现,项目做完了 ...
- es6+最佳入门实践(10)
10.Generator 10.1.Generator是什么? Generator函数是ES6提供的一种异步编程解决方案.在它的内部封装了多个状态,因此,又可以理解为一种状态机,执行Generator ...
- mysql5.7.11安装遇到的问题
首次安装mysql5.7.11绿色版,真是破费功夫,现记录安装中遇到的问题,只是解决了问题,而不清楚问题的由来. 问题一: 问题二: 问题三: 问题四: 我的my.ini配置文件: [mysql] # ...
- NPOI的使用Excel模板导出 可插入到指定行
Excel模版建议把需要添加数据行的样式设置好 模版样式,导出后效果 [2017-11-22 对获取需插入数据的首行样式有时为空报错修改] /// <summary> /// 根据模版导出 ...
- celery后台运行
参考:https://blog.csdn.net/qq_18863573/article/details/52437689 pip install supervisor # 要用python2的pip ...
- 关于gsl库出现access violation 0X00000005问题的解决方法
gsl即GNU SCIENCE LIBRARY是一个强大c/c++的数值计算函数库. 在使用这一库出现access violation 0X00000005问题,尝试方法一在project->C ...