在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)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python通過m3u8文件下載合并ts視頻的操作
- Python文件的操作示例的詳細(xì)講解
- 在 Python 中使用 7zip 備份文件的操作
- Python: glob匹配文件的操作
- 利用python進(jìn)行文件操作
- 詳解Python利用configparser對(duì)配置文件進(jìn)行讀寫操作
- Python文件操作及內(nèi)置函數(shù)flush原理解析
- python基礎(chǔ)之文件操作