当前位置 博文首页 > python中操作文件的模块的方法总结

    python中操作文件的模块的方法总结

    作者:小妮浅浅 时间:2021-07-28 17:50

    在python中操作文件算是一个基本操作,但是选对了模块会让我们的效率大大提升。本篇整理了两种模块的常用方法,分别是os模块和shutil模块。相信这两种模块大家在之间的学习中有所涉及,那么关于具体的文件操作部分,我们一起往下看看都有哪些方法和实例吧。

    本教程操作环境:windows7系统、Python3版、Dell G3电脑。

    Python对文件操作采用的统一步骤是:打开—操作—关闭。

    一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法

    1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

    2.返回指定目录下的所有文件和目录名:os.listdir()

    3.函数用来删除一个文件:os.remove()

    4.删除多个目录:os.removedirs(r"c:\python")

    5.检验给出的路径是否是一个文件:os.path.isfile()

    6.检验给出的路径是否是一个目录:os.path.isdir()

    7.判断是否是绝对路径:os.path.isabs()

    8.检验给出的路径是否真地存:os.path.exists()

    9.返回一个路径的目录名和文件名:os.path.split()

    二、文件综合操作实例

    将文件夹下所有图片名称加上'_fc'

    # -*- coding:utf-8 -*-
    import re
    import os
    import time
    #str.split(string)分割字符串
    #'连接符'.join(list) 将列表组成字符串
    def change_name(path):
    global i
    if not os.path.isdir(path) and not os.path.isfile(path):
    return False
    if os.path.isfile(path):
    file_path = os.path.split(path) #分割出目录与文件
    lists = file_path[1].split('.') #分割出文件与文件扩展名
    file_ext = lists[-1] #取出后缀名(列表切片操作)
    img_ext = ['bmp','jpeg','gif','psd','png','jpg']
    if file_ext in img_ext:
    os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
    i+=1 #注意这里的i是一个陷阱
    #或者
    #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
    #if file_ext in img_ext:
    # print('ok---'+file_ext)
    elif os.path.isdir(path):
    for x in os.listdir(path):
    change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用
    img_dir = 'D:\\xx\\xx\\images'
    img_dir = img_dir.replace('\\','/')
    start = time.time()
    i = 0
    change_name(img_dir)
    c = time.time() - start
    print('程序运行耗时:%0.2f'%(c))
    print('总共处理了 %s 张图片'%(i))

    实例扩展:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: GrayMac
    import shutil
    import os
    
    basefileclass = 'basefile'
    #sourcefile:源文件路径 fileclass:源文件夹 destinationfile:目标文件夹路径
    def copy_file(sourcefile,fileclass,destinationfile):
     #遍历目录和子目录
     for filenames in os.listdir(sourcefile):
      #取得文件或文件名的绝对路径
      filepath = os.path.join(sourcefile,filenames)
      #判断是否为文件夹
      if os.path.isdir(filepath):
       if fileclass == basefileclass :
        copy_file(filepath,fileclass + '/' + filenames,destinationfile + '/' + filenames)
       else :
        copy_file(filepath,fileclass,destinationfile + '/' + filenames)
      #判断是否为文件
      elif os.path.isfile(filepath):
       print('Copy %s'% filepath +' To ' + destinationfile)
       #如果无文件夹则重新创建
       if not os.path.exists(destinationfile):
        os.makedirs(destinationfile)
       shutil.copy(filepath,destinationfile)
        
    copy_file(sourcefile,basefileclass,destinationfile)
    jsjbwy
    上一篇:没有了
    下一篇:没有了