成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python文件及目錄操作代碼匯總

瀏覽:56日期:2022-07-18 11:02:35

前言

在python中,內(nèi)置了文件(file)對(duì)象,通過(guò)一些內(nèi)置的方法就可以實(shí)現(xiàn)對(duì)文件的操作,例如open()方法創(chuàng)建一個(gè)文件對(duì)象,write()方法向文件寫(xiě)入內(nèi)容。

一.文件基本操作

1.創(chuàng)建和打開(kāi)文件

想要操作文件,先要?jiǎng)?chuàng)建或者打開(kāi)指定文件并創(chuàng)建文件對(duì)象,可以通過(guò)內(nèi)置函數(shù)open()來(lái)實(shí)現(xiàn)。

file = open(file_name[,mode[,buffering]])’’’file_name : 要?jiǎng)?chuàng)建或者打開(kāi)的文件名mode : 用于指定文件打開(kāi)的方式’’’

mode參數(shù)的參數(shù)值表

模式 描述 r 以只讀方式打開(kāi)文件。文件的指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。 rb 以二進(jìn)制格式打開(kāi)一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。 r+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。 rb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。 w 打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。 wb 以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。 w+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。 wb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。 a 打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。 ab 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。 a+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開(kāi)時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。 ab+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

注意

采用open()函數(shù)打開(kāi)文件時(shí),默認(rèn)采用的是GBK編碼,如果想要用其他編碼方式,需要加上encoding參數(shù)

file = open(’./text.txt’,’a+’,encoding=’utf-8’)#需要采用原文件用的編碼方式打開(kāi),不然會(huì)報(bào)錯(cuò)

2.關(guān)閉文件

打開(kāi)文件之后,需要及時(shí)關(guān)閉,以免對(duì)文件造成不必要的破壞。可以用內(nèi)置函數(shù)close()。

file = open(’./text.txt’,’a+’)file.close()

close()函數(shù)先刷新緩沖區(qū)中還沒(méi)有寫(xiě)入的信息,將其寫(xiě)入到文件中,再關(guān)閉文件,起到對(duì)文件的保護(hù)作用。

3.寫(xiě)入文件

語(yǔ)法

file = write(string)

demo

#打開(kāi)文件file = open(’./text.txt’,’a+’)#寫(xiě)入文件file = write(’不負(fù)代碼,不負(fù)卿’)#關(guān)閉文件file.close()

注:

再寫(xiě)入文件的時(shí)候要注入打開(kāi)文件的時(shí)候是處于什么模式,不然會(huì)把原數(shù)據(jù)覆蓋掉。

4.讀取文件

讀取文件的前提是在打開(kāi)文件時(shí),指定的打開(kāi)模式為r(只讀)或者r+(讀寫(xiě))否則,會(huì)拋出異常。

(1)讀取指定字符

file.read([size])

#size :用于指定要讀取的字符個(gè)數(shù),如果省略,則一次性讀取所有內(nèi)容。

(2)讀取一行

file.readline()

該方法用于讀取一行文本

(3)讀取全部行

file.readlins()

二.目錄操作

python內(nèi)置了os模塊及子模塊os.path用于對(duì)目錄或文件的操作。

os模塊提供的與目錄相關(guān)的函數(shù)

函數(shù) 說(shuō)明 getcwd() 返回當(dāng)前的工作目錄 listdir(path) 返回指定路徑下的文件和目錄信息 mkdir(path[,mode]) 創(chuàng)建目錄 makedirs(path/path2.....) 創(chuàng)建多級(jí)目錄 rmdir(path) 刪除目錄 removedirs(/path1/path2...) 刪除多級(jí)目錄 chdir(path) 把path設(shè)置為當(dāng)前工作目錄 walk(top[,topdown[,onerror]) 遍歷 access(path,accessmode) 獲取指定文件是否有某個(gè)權(quán)限(accessmode的等于R_OK(讀取),W_OK(寫(xiě)入),X_OK(執(zhí)行),F_OK(存在)),如果有指定的權(quán)限,返回1,否則返回0. chmod(path,mode) 修改path指定文件的訪問(wèn)權(quán)限 remove(path) 刪除指定的文件路徑 rename(src,dst) 將文件或目錄src重命名為dst stat(path) 返回path指定文件的信息

os.path模塊提供與目錄有關(guān)的函數(shù)

函數(shù) 說(shuō)明 abspath(path) 用于獲取文件或目錄的絕對(duì)路徑 exists(path) 用于判斷目錄或者文件是否存在,如果存在則返回True,否則返回False join(path,name) 將目錄與目錄或者文件名拼接起來(lái) splitext() 分離文件名和拓展名 split(path) 將路徑和文件名分開(kāi) basename(path) 從一個(gè)目錄中提取文件名 dirname(path) 從一個(gè)路徑中提取文件路徑,不包括文件名 isdir(path) 用于判斷路徑是否有效

demo —— 獲取當(dāng)前工作目錄

import osprint(os.getcwd())

demo —— 判斷目錄是否存在

import osprint(os.path.exists('c:demo'))

因?yàn)閑xists()是os的子模塊提供的,所以要要加前綴,os.path

demo —— 創(chuàng)建一級(jí)目錄

import ospath = 'c://demo'#如果要?jiǎng)?chuàng)建的目錄已經(jīng)存在,則會(huì)拋出異常,先判斷要?jiǎng)?chuàng)建的目錄是否存在if not os.path.exists(path):os.mkdir(path)else:print(’該目錄已經(jīng)存在’)

mkdir(path)創(chuàng)建的目錄是一級(jí)目錄,如果傳入的path中最后一級(jí)的上級(jí)目錄不存在,那么會(huì)拋出異常。

demo —— 創(chuàng)建多級(jí)目錄

import osos.makedirs('C:demo1demo2...')

demo —— 刪除目錄

import ospath = 'C:demo1demo2'#判斷要?jiǎng)h除的目錄,如果不存在會(huì)拋出問(wèn)題if os.path.exists(path):os.rmdir('C:demo1demo2') #刪除的是demo2這個(gè)文件print('目錄刪除成功!')else:print('該目錄不存')

注:

rmdir()函數(shù)只能刪除空的目錄,如果不為空就不能刪除,可以一下代碼刪除不為空的目錄。

import shutilshutil.rmtree('C:demotext')

demo —— 遍歷目錄

os.walk()的返回值是一個(gè)包含三個(gè)元素(dirpath,dirnams,filenames)的元組生成器對(duì)象。

dirpath: 是一個(gè)字符串,表示當(dāng)前遍歷的路徑

dirnames: 是一個(gè)列表,表示的是當(dāng)前路徑下包含的子目錄

filenames: 也是一個(gè)列表,當(dāng)前目錄下的文件

os.walk(top,[topdown][,onerror][,followlinks])’’’top: 用于指定要遍歷的目錄topdown: 可選參數(shù),用于指定要遍歷的順序,如果為T(mén)rue(默認(rèn)),表示從上到下遍歷,如果為False,表示從小到上。’’’

import ospath = 'C:demo'#root 是當(dāng)前根路徑,dirs包含路徑下的子目錄,files包含了子目錄下的二五年間for root,dirs,fles in os.walk(path,topdown=True):for name in dirs:print(os.path.join(root,name))for name in files:print(os.path.join(root.name))

demo —— 產(chǎn)找當(dāng)前目錄下某個(gè)文件是否存在

import ospath = 'C:demo'filename = 'love.txt'for root,dirs,files in os.walk(path):for name in files:if filename== name:print(os.path.join(root,name))

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 精品欧美日韩一区二区三区 | 亚洲人成网址在线观看 | 国产一区免费观看 | 日韩freesex呦交 | 午夜性激福利免费观看 | 六月成人网 | 国产日韩欧美亚洲 | 国产免费麻豆 | 青青爽国产手机在线观看免费 | 国产成人经典三级在线观看 | 美女黄色在线 | 最近日本免费观看视频 | 富二代精品视频 | 国产欧美一区二区三区精品 | 91热久久免费频精品动漫99 | 呦女精品 | 欧美videosex性欧美成人 | 亚洲成 人a影院青久在线观看 | 欧美日本综合一区二区三区 | 欧美一级专区免费大片野外交 | 国产精品线在线精品国语 | 国产成人免费a在线资源 | 成人全黄三级视频在线观看 | 视频一区二区三区自拍 | 日韩美女在线看免费观看 | 亚洲国产精品第一区二区三区 | 亚洲精品视频在线观看免费 | 国产三级三级三级 | 亚洲欧美在线不卡 | 欧美成在人线a免费 | 免费观看成为人视频 | 在线观看黄网视频免费播放 | 国产成人精品免费视频网页大全 | 成人永久免费视频网站在线观看 | 国产成版人视频网站免费下 | 成年人免费看 | 欧美一级大片免费看 | 亚洲日本高清影院毛片 | 国产一级爱 | 国产日韩欧美一区二区三区在线 | 18视频免费网站 |