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 ...
随机推荐
- 算法(12)Best Time to Buy and Sell Stock II
题目:最大收益 [1,2,3,9,2,3] 思路:这道题竟然是easy的?! 最终的解法非常简单,只要把单个波峰减去波谷就可以了,比如在上面的例子中[1-2-3-9][2-3]这就是单个波峰波谷!为什 ...
- css 给body设置背景图片
- JQuery排错关于$(document).ready(function(){});
最近写了好多JQuery.也出了很多问题.不知道怎么回事.程序就不往下执行了.很是郁闷. 查了下资料,这里可能会有以下几种原因:1.js文件的引用路径不正确,特别是使用了命名空间,容易造成路径错误,使 ...
- 【转】IBatis.Net项目数据库SqlServer迁移至Oracle
转自:http://www.2cto.com/database/201312/265514.html 最近完成了一个(IBatis.Net+MVC)项目的数据库+代码迁移工作,可把我折腾得~~~ IB ...
- 洛谷 P1251 餐巾计划问题
题目链接 最小费用最大流. 每天拆成两个点,早上和晚上: 晚上可以获得\(r_i\)条脏毛巾,从源点连一条容量为\(r_i\),费用为0的边. 早上要供应\(r_i\)条毛巾,连向汇点一条容量为\(r ...
- 【BZOJ 2756】[SCOI2012]奇怪的游戏 二分+最大流
这道题提醒我,要有将棋盘黑白染色的意识,尤其是看到相邻格子这样的条件的时候,然后就是要用到与其有关的性质与特点以体现其作用,这道题就是用到了黑格子与白格子之间的关系进行的,其出发点是每次一定会给一个黑 ...
- taotao用户登录(及登录成功后的回调url处理)
后台Controller: package com.taotao.sso.controller; import org.springframework.stereotype.Controller; i ...
- P2765 魔术球问题(网络流24题)
题目描述 «问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全 ...
- [洛谷P1032] 字串变换
洛谷题目链接:字串变换 题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B ...
- 【BZOJ2326】【HNOI2011】数学作业 [矩阵乘法][DP]
数学作业 Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description Input 输入文件只有一行为用空 ...