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

0 0
原创粉丝点击