最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年07月08日 10:04:20   作者:lc-snail  
這篇文章主要介紹了python文件及目錄操作代碼匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

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

一.文件基本操作

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

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

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

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

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

注意

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

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

2.關(guān)閉文件

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

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

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

3.寫入文件

語法

file = write(string)

demo

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

注:

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

4.讀取文件

讀取文件的前提是在打開文件時(shí),指定的打開模式為r(只讀)或者r+(讀寫)否則,會(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ù) 說明
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(寫入),X_OK(執(zhí)行),F_OK(存在)),如果有指定的權(quán)限,返回1,否則返回0.
chmod(path,mode) 修改path指定文件的訪問權(quán)限
remove(path) 刪除指定的文件路徑
rename(src,dst) 將文件或目錄src重命名為dst
stat(path) 返回path指定文件的信息

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

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

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

import os
print(os.getcwd())

demo —— 判斷目錄是否存在

import os
print(os.path.exists("c:\\demo"))

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

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

import os
path = "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 os
os.makedirs("C:\\demo1\\demo2\\...")

demo —— 刪除目錄

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

注:

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

import shutil
shutil.rmtree("C:\\demo\\text")

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ù),用于指定要遍歷的順序,如果為True(默認(rèn)),表示從上到下遍歷,如果為False,表示從小到上。
'''

import os
path = "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 os
path = "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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • django模型動(dòng)態(tài)修改參數(shù),增加 filter 字段的方式

    django模型動(dòng)態(tài)修改參數(shù),增加 filter 字段的方式

    這篇文章主要介紹了django模型動(dòng)態(tài)修改參數(shù),增加 filter 字段的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 教你用python實(shí)現(xiàn)一個(gè)無界面的小型圖書管理系統(tǒng)

    教你用python實(shí)現(xiàn)一個(gè)無界面的小型圖書管理系統(tǒng)

    今天帶大家學(xué)習(xí)怎么用python實(shí)現(xiàn)一個(gè)無界面的小型圖書管理系統(tǒng),文中有非常詳細(xì)的圖文解說及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯(cuò)亂問題解決方案

    el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯(cuò)亂問題解決方案

    使用vue+element開發(fā)報(bào)表功能時(shí),需要列表上某列的超鏈接按鈕彈窗展示,在彈窗的el-table列表某列中再次使用超鏈接按鈕點(diǎn)開彈窗,以此類推多表格彈窗嵌套,本文以彈窗兩次為例,需要的朋友可以參考下
    2023-11-11
  • Python中生成Epoch的方法

    Python中生成Epoch的方法

    下面小編就為大家?guī)硪黄狿ython中生成Epoch的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 如何使用Python編寫測(cè)試腳本

    如何使用Python編寫測(cè)試腳本

    這篇文章主要為大家詳細(xì)介紹了Python如何通過PyCAN和CANard庫實(shí)現(xiàn)編寫測(cè)試腳本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • 深度定制Python的Flask框架開發(fā)環(huán)境的一些技巧總結(jié)

    深度定制Python的Flask框架開發(fā)環(huán)境的一些技巧總結(jié)

    現(xiàn)在越來越多的人使用virtualenv虛擬環(huán)境部署Python項(xiàng)目,包括針對(duì)框架的實(shí)例文件夾與版本控制布置,這里我們就來整理關(guān)于深度定制Python的Flask框架開發(fā)環(huán)境的一些技巧總結(jié)
    2016-07-07
  • Python中read()、readline()和readlines()方法比較及使用詳解

    Python中read()、readline()和readlines()方法比較及使用詳解

    在Python文件操作中,read()、readline()和readlines()是三個(gè)常用的文件讀取方法,它們各有特點(diǎn),適用于不同的場(chǎng)景,本文將深入探討這三個(gè)方法的區(qū)別、使用場(chǎng)景、性能比較以及最佳實(shí)踐,需要的朋友可以參考下
    2025-03-03
  • 如何利用python正則表達(dá)式匹配版本信息

    如何利用python正則表達(dá)式匹配版本信息

    這篇文章主要給大家介紹了關(guān)于如何利用python正則表達(dá)式匹配版本信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python之singledispatch單分派問題

    python之singledispatch單分派問題

    這篇文章主要介紹了python之singledispatch單分派問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python嵌套字典比較值與取值的實(shí)現(xiàn)示例

    python嵌套字典比較值與取值的實(shí)現(xiàn)示例

    這篇文章主要給大家介紹了關(guān)于python嵌套字典比較值與取值的實(shí)現(xiàn)方法,詳細(xì)介紹了python字典嵌套字典的情況下獲取某個(gè)key的value的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-11-11

最新評(píng)論

介休市| 桦南县| 土默特左旗| 信丰县| 宁津县| 龙泉市| 耒阳市| 京山县| 浦城县| 虞城县| 湖口县| 海阳市| 屏边| 绥阳县| 山东省| 密山市| 景宁| 延津县| 北川| 全南县| 连南| 遂平县| 博乐市| 万载县| 弥渡县| 东宁县| 罗田县| 崇左市| 彭阳县| 南岸区| 鹤岗市| 随州市| 延川县| 元氏县| 卢湾区| 衡东县| 毕节市| 渭源县| 德化县| 威海市| 木里|