python文件操作技巧总结

发布时间:2020-02-10编辑:脚本学堂
本文介绍python文件操作的一些技巧,包括如何读写文件、遍历文件与文件夹、分割路径和文件名、文件复制与备份等。有需要的朋友,可以参考下。

1、读写文件
   

复制代码 代码示例:
#! /usr/bin/python 
    # -*- coding: utf8 -*-  
    '''''
        知识点: 如何读写文件
    ''' 
    spath="D:/download/baa.txt" 
    f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist. 
    f.write("First line 1.n") 
    f.writelines("First line 2.") 
     
    f.close() 
     
    f=open(spath,"r") # Opens file for reading 
     
    for line in f: 
        print("每一行的数据是:%s"%line) 
     
    f.close() 

2、遍历文件夹和文件
   

复制代码 代码示例:
'''''知识点:
    
        * os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.
        * case1 演示了如何遍历所有目录.
        * case2 演示了如何遍历所有文件.
        * os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java".
    ''' 
     
    import os 
    import os.path 
    # os,os.path里包含大多数文件访问的函数,所以要先引入它们. 
    # 请按照你的实际情况修改这个路径 
    rootdir = "d:/download" 
    for parent, dirnames, filenames in os.walk(rootdir): 
        #case 1: 
        for dirname in dirnames: 
            print ("parent is:" + parent) 
            print ("dirname is:" + dirname) 
        #case 2 
        for filename in filenames: 
            print ("parent is:" + parent) 
            print ("filename with full path :" + os.path.join(parent, filename)) 

3、分割路径和文件名
  

复制代码 代码示例:
  '''''
        知识点:    这三个函数都返回二元组.
        * case1 分隔目录和文件名
        * case2 分隔盘符和文件名
        * case3 分隔文件和扩展名
    ''' 
     
    import os.path 
    #常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名. 
    #根据你机器的实际情况修改下面参数. 
    spath="D:/download/repository.7z" 
     
    # case 1: 
    p,f=os.path.split(spath); 
    print("dir is:"+p) 
    print("file is:"+f) 
     
    # case 2: 
    drv,left=os.path.splitdrive(spath); 
    print("driver is:"+drv) 
    print("left is:"+left) 
    # case 3: 
    f,ext=os.path.splitext(spath); 
    print("f is:"+f) 
    print("ext is:"+ext) 

总结:5个函数:
    os.walk(spath)
    os.path.split(spath)
    os.path.splitdrive(spath)
    os.path.splitext(spath)
    os.path.join(path1,path2)

4、复制文件
   

复制代码 代码示例:
'''''
        知识点:
        * shutil.copyfile:如何复制文件
        * os.path.exists:如何判断文件夹是否存在
        * shutil.copytree:如何复制目录树    
    ''' 
     
    import shutil 
    import os 
    import os.path 
     
    src="d:downloadtestmyfile1.txt" 
    dst="d:downloadtestmyfile2.txt" 
    dst2="d:/download/test/测试文件夹.txt" 
     
    dir1=os.path.dirname(src) 
     
    print("dir1 %s"%dir1) 
     
    if(os.path.exists(src)==False): 
        os.makedirs(dir1)        
     
    f1=open(src,"w") 
    f1.write("line an") 
    f1.write("line bn") 
    f1.close() 
     
     
    shutil.copyfile(src, dst) 
    shutil.copyfile(src, dst2) 
    f2=open(dst,"r") 
    for line in f2: 
        print(line) 
     
    f2.close() 
     
    #测试复制文件夹树 
    try: 
        srcDir="d:/download/test" 
        dstDir="d:/download/test2" 
        #如果dstDir已经存在,那么shutil.copytree方法会报错! 
        #这也意味着你不能直接用d:作为目标路径. 
        shutil.copytree(srcDir, dstDir) 
    except Exception as err: 
        print (err)