python中操作文件的模塊的方法總結(jié)
在python中操作文件算是一個(gè)基本操作,但是選對(duì)了模塊會(huì)讓我們的效率大大提升。本篇整理了兩種模塊的常用方法,分別是os模塊和shutil模塊。相信這兩種模塊大家在之間的學(xué)習(xí)中有所涉及,那么關(guān)于具體的文件操作部分,我們一起往下看看都有哪些方法和實(shí)例吧。
本教程操作環(huán)境:windows7系統(tǒng)、Python3版、Dell G3電腦。
Python對(duì)文件操作采用的統(tǒng)一步驟是:打開—操作—關(guān)閉。
一、python中對(duì)文件、文件夾操作時(shí)經(jīng)常用到的os模塊和shutil模塊常用方法
1.得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑: os.getcwd()
2.返回指定目錄下的所有文件和目錄名:os.listdir()
3.函數(shù)用來刪除一個(gè)文件:os.remove()
4.刪除多個(gè)目錄:os.removedirs(r"c:\python")
5.檢驗(yàn)給出的路徑是否是一個(gè)文件:os.path.isfile()
6.檢驗(yàn)給出的路徑是否是一個(gè)目錄:os.path.isdir()
7.判斷是否是絕對(duì)路徑:os.path.isabs()
8.檢驗(yàn)給出的路徑是否真地存:os.path.exists()
9.返回一個(gè)路徑的目錄名和文件名:os.path.split()
二、文件綜合操作實(shí)例
將文件夾下所有圖片名稱加上'_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('.') #分割出文件與文件擴(kuò)展名 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是一個(gè)陷阱 #或者 #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('程序運(yùn)行耗時(shí):%0.2f'%(c)) print('總共處理了 %s 張圖片'%(i))
實(shí)例擴(kuò)展:
#! python 3 # -*- coding:utf-8 -*- # Autor: GrayMac import shutil import os basefileclass = 'basefile' #sourcefile:源文件路徑 fileclass:源文件夾 destinationfile:目標(biāo)文件夾路徑 def copy_file(sourcefile,fileclass,destinationfile): #遍歷目錄和子目錄 for filenames in os.listdir(sourcefile): #取得文件或文件名的絕對(duì)路徑 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) #如果無文件夾則重新創(chuàng)建 if not os.path.exists(destinationfile): os.makedirs(destinationfile) shutil.copy(filepath,destinationfile) copy_file(sourcefile,basefileclass,destinationfile)
到此這篇關(guān)于python中操作文件的模塊的方法總結(jié)的文章就介紹到這了,更多相關(guān)python中操作文件的模塊有幾種內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用python執(zhí)行shell腳本 并動(dòng)態(tài)傳參 及subprocess的使用詳解
這篇文章主要介紹了使用python執(zhí)行shell腳本 并動(dòng)態(tài)傳參 及subprocess的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Django中更新多個(gè)對(duì)象數(shù)據(jù)與刪除對(duì)象的方法
這篇文章主要介紹了Django中更新多個(gè)對(duì)象數(shù)據(jù)與刪除對(duì)象的方法,Django是Python重多各色框架中人氣最高的一個(gè),需要的朋友可以參考下2015-07-07Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟
這篇文章主要介紹了Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python scipy卷積運(yùn)算的實(shí)現(xiàn)方法
這篇文章主要介紹了python scipy卷積運(yùn)算的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09python selenium對(duì)應(yīng)的瀏覽器chromedriver版本不一致問題
這篇文章主要介紹了python selenium對(duì)應(yīng)的瀏覽器chromedriver版本不一致問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python基于分析Ajax請(qǐng)求實(shí)現(xiàn)抓取今日頭條街拍圖集功能示例
這篇文章主要介紹了Python基于分析Ajax請(qǐng)求實(shí)現(xiàn)抓取今日頭條街拍圖集功能,涉及Python針對(duì)今日頭條URL請(qǐng)求與json數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下2018-07-07