python常用文件操作方法整理
来源:互联网 发布:2017淘宝答题答案 编辑:程序博客网 时间:2024/05/20 21:19
内容参考自《python变成快速上手》
首先明确一点,Windows的路径在python中写为(‘c:\Users\xxx’);mac OS和Linux则写成(‘usr/bin/xxx’)。
此处需要用到os模块
1、os.path()
①os.path.join()
如果想要程序运行在不同的操作系统时,对文件路径的处理可以使用该方法
>>>os.path.join('xxx','xx')'xxx\\xx' #Windows上运行时或'xxx/xx' #Linux上运行时
②os.path.dirname()
获得路径中最后一个斜杠前的内容
>>>os.path.dirname('C:\\windows\\xxx.txt')C:\\windows\\
③os.path.basename()
与上互相不同,返回最后一个斜杠后的内容
>>>os.path.basename('C:\\windows\\xxx.txt')xxx.txt
④os.path.getsize()
获得文件大小
>>>os.path.getsize('C:\\windows\\xxx.txt')123456
⑤os.path.exists()
检测指定路径是否存在,可以是文件夹或者文件
>>>os.path.exists('C:\\windows')True
⑥os.path.isdir()
检测指定文件是否存在
⑦os.path.isfile()
检测指定文件夹是否存在
2、os.getcwd()
获得当前工作目录的字符串
>>>os.getcwd()'C:\\Windows'
3、os.chdir()
改变当前工作目录
>>>os.chdir('C:\\')'C:\\'
若当前文件夹不存在,则会报错,而不会新建一个目录
4、os.makedirs()
创建新文件夹
os.makedirs('C:\\xxx\\xx\\x')
若不存在xxx或者xx,则自动创建
5、os.listdir()
列出指定目录下包含的文件
>>>os.path.listdir('C:\\windows')['addins','py.exe'....]
6、open()
打开一个文件,此打开应该说是和平常操作的‘选定’一个概念,而非‘双击打开’,第二个参数可以指定打开的模式,是以‘a’添加模式,或者‘w’写入模式等等,模式的应用会在write()方法中用到
>>>testfile = open('C:\\xxx.txt','w')
7、read()
读取文件内容
>>>testfile.read()'lskajdkl'
8、write()
将内容写入文件
>>>testfile.write('hello')'hello' #因为打开使用的是写入模式,所以原内容被替换掉
此处用到shutil模块,对文件进行复制、移动等功能。
9、shutil.copy(a,b)
将路径a的单一文件复制到b处,b若为文件名则直接复制并重命名,若为文件夹则只复制。
>>>shutile.copy('C:\\xxx.txt','D:\\asd\\xxx.txt')'D:\\xxx.txt'
PS:若b路径不存在则会报错。
若b路径写成’D:\asd’,则会将文件复制到D盘根目录并重命名为asd
若想复制整个文件夹,则使用shutil.copytree()
10、shutil.move(a,b)
移动文件用法与9类似。若b路径下已存在同名文件,则会被覆盖。
11、shutil.retree()、send2trash()、os.unlink()和os.rmdir()
shutil.rmtree()将删除路径处的文件夹,及包含的子文件和文件夹
os.unlink()将删除路径处的文件
os.rmdir()将删除路径处的文件夹,但是文件夹必须为空,否则会报错。
注:以上该删除都是永久删除,而不是移到回收站
send2trash()移入回收站,且不释放磁盘空间
12、os.walk()
遍历目录树,达到操作整个文件夹及其子文件夹等目的
for folderName, subfolders, filenames in os.walk('D:\\asd'): print('当前文件夹是'+ folderName) for subfolder in subfolders: print('子文件夹:'+ subfolder) for filename in filenames: print('子文件:' + filename)
这里要用到zipfile模块,可以对文件进行压缩打包等操作
13、zipfile.write()
创建压缩ZIP文件,且必须以‘w’模式打开压缩对象。
>>>xxx = zipfile.ZipFile('D:\\asd.zip','w')>>>xxx.write('D:\\asd\\asd.txt',compress_type=zipfile.ZIP_DEFLATED) #第二个参数为压缩算法,它对各种类型的数据都很有效>>>xxx.close()
14、extractall()
解压缩文件
15、zipfile.ZipFile()
读取ZIP文件的内容
>>>xxx = zipfile.ZipFile('asd.zip')>>>xxx.namelist()['asd/asd.txt','asd/asd/'] >>>asdInfo = xxx.getinfo('asd/asd.txt') #获取zip内指定文件的信息>>>asdInfo.file_size #获取asd.txt未压缩时的大小0 >>>asdInfo.compress_size #获取压缩后的大小0
附:http://www.jb51.net/article/68417.htm
- python常用文件操作方法整理
- C#文件操作方法整理
- plist文件操作方法整理
- Python--常用字符串操作方法
- 常用的文件操作方法
- 常用的文件操作方法
- 文件常用的操作方法
- python 文件路径操作方法
- Python 中的文件操作方法
- 文件归档NSKeyedArchiver操作方法整理
- 关于Python的文件操作方法
- python 读写文件基本操作方法
- python目录文件操作方法实例
- python 文件路径操作方法(转)
- python 文件、文件夹操作方法总结
- python常用文件、path函数分类整理
- C#中常用的文件操作方法
- C#中常用的经典文件操作方法
- Objective-C学习——中文URL编码和解码
- C/C++ typedef用法详解(真的很详细)
- Java实现一个简单的RPC框架(三) 带参数的本地调用
- iOS NSString 和NSData 转换
- java设计模式
- python常用文件操作方法整理
- CSS文字换行、裁剪
- ios 字符串分割
- 10门最佳编程语言各自的优势
- [FUNC]循环输出字符串中的字符
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- 主线程有多个Handler, 子线程发送消息由哪个handler处理
- textarea去掉右下角三角图标
- Git 与 github关联