成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

os模塊目錄操作詳解-創(chuàng)新互聯(lián)

os模塊是一個(gè)功能強(qiáng)大模塊,主要提供操作系統(tǒng)相關(guān)功能接口,例如:文件目錄操作,進(jìn)程相關(guān)操作,執(zhí)行系統(tǒng)命令,解析環(huán)境變量等。
使用os模塊,我們首先要導(dǎo)入:

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到迪慶州網(wǎng)站設(shè)計(jì)與迪慶州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋迪慶州地區(qū)。
import os

下面我們對(duì)這些功能逐一介紹。

1:目錄相關(guān)操作:

目錄相關(guān)常用操作如下表:

方法 說(shuō)明
os.getcwd()獲取當(dāng)前腳本工作的目錄路徑
os.getcwdb()同上,返回byte對(duì)象
os.chdir(path)修改當(dāng)前目錄為path
os.mkdir(path, mode=0o777, *, dir_fd=None)創(chuàng)建目錄
os.makedirs(name, mode=0o777, exist_ok=False)創(chuàng)建多層目錄
os.rmdir(path, *, dir_fd=None)刪除目錄
os.removedirs(name)刪除多級(jí)目錄
os.listdir(path='.')返回指定目錄下所有文件
scandir(path='.')返回迭代器,內(nèi)容為指定目錄下所有文件目錄
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)修改路徑權(quán)限
os.rename(src, dst,...)os模塊修改文件名

相關(guān)操作如下:

#開(kāi)發(fā)環(huán)境ubuntu
#獲取當(dāng)前目錄
dirname = 'test'
pwd = os.getcwd()
print('當(dāng)前工作目錄:',pwd)
path = '/home/hyg/tmp'
#獲取指定文件夾下所有文件
listf = os.listdir(path)
print(f'{path}files:{listf}')
#切換當(dāng)前工作目錄
os.chdir(path)
#查看當(dāng)前路徑:
print('切換工作目錄:',os.getcwd())
#當(dāng)前目錄下創(chuàng)建目錄
os.mkdir(dirname)
#顯示當(dāng)前目錄下文件
print(f'{path}files:{os.listdir("./")}')
#刪除目錄:
os.rmdir(dirname)
#切回當(dāng)前目錄
os.chdir(pwd)
#顯示當(dāng)前目錄
print('當(dāng)前工作目錄:',pwd)

輸出結(jié)果:

當(dāng)前工作目錄: /home/hyg/tmp
/home/hyg/tmpfiles:['1.jpg', '2.jpg']
切換工作目錄: /home/hyg/tmp
/home/hyg/tmpfiles:['test', '1.jpg', '2.jpg']
當(dāng)前工作目錄: /home/hyg/tmp

2:os.path相關(guān)方法

這些方法包括目錄判斷,路徑獲取,路徑拼接,文件信息獲?。?/p>

2.1 文件判斷

方法 說(shuō)明
os.path.isdir(s)判斷是否為目錄 ,如果為目錄返回True
os.path.isfile(s)判斷是否為文件 ,如果為文件返回True
os.path.exists(path)判斷文件或目錄是否存在 ,存在返回True

2.2 文件路徑獲取

方法 說(shuō)明
os.path.dirname(path)返回目錄所在路徑
os.path.split(p)目錄切分,返回元組(head,tail
os.path.basename(p)返回最后一級(jí)目錄
os.path.join(a, *p)目錄拼接
os.path.abspath(path)獲取文件絕對(duì)路徑

這里我們要注意basename, split,來(lái)看兩個(gè)例子:

def func(path):
    print(f'split   :{path}, result:{os.path.split(path)}')
    print(f'basename:{path}, result:{os.path.basename(path)}')
path = '/home/linux/test/1.txt'
func(path)
path = '/home/linux/test/'
func(path)
func('1.txt')

輸出結(jié)果:

split   :/home/linux/test/1.txt, result:('/home/linux/test', '1.txt')
basename:/home/linux/test/1.txt, result:1.txt
split   :/home/linux/test/, result:('/home/linux/test', '')
basename:/home/linux/test/, result:
split   :1.txt, result:('', '1.txt')
basename:1.txt, result:1.txt

注意路徑及輸出格式。

關(guān)于目錄拼接:很多代碼實(shí)現(xiàn)如下面這種方式:

path = '/home/linux/test'
fpath = path + '/' + '1.txt'
print(fpath)

輸出結(jié)果:

/home/linux/test/1.txt

這種方式問(wèn)題:

1>跨平臺(tái)問(wèn)題,linux與window下目錄表達(dá)方式不一樣;
2>路徑拼接,注意目錄之間分隔符,有嚴(yán)格限制,容易出錯(cuò);

我們可以使用下面這種方式:

path = '/home/linux/test/'
fpath = os.path.join(path, '1.txt')
print(fpath)
path = '/home/linux/test'
fpath = os.path.join(path, '1.txt')
print(fpath)

輸出結(jié)果:

/home/linux/test/1.txt
/home/linux/test/1.txt

path的最后有沒(méi)有反斜杠,join都可以處理,但是字符串拼接這種方式顯然不行。

2.3 獲取文件信息

方法 說(shuō)明
os.stat(path, *, dir_fd=None, follow_symlinks=True)獲取文件或目錄信息
os.path.getatime(filename)獲取文件最后訪問(wèn)時(shí)間
os.path.getctime(filename))獲取文件最后改變時(shí)間
os.path.getmtime(filename)獲取文件最后修改時(shí)間
os.path.getsize(filename)獲取文件大小

getctime與getmtime都是獲文件最后修改時(shí)間,區(qū)別在哪里?文件修改方式:

1>文件內(nèi)容修改;對(duì)兩個(gè)方法獲取時(shí)間都有影響;
2>文件權(quán)限,用戶(hù)修改;只對(duì)getctime獲取時(shí)間有影響;

使用Python代碼驗(yàn)證:

import os
path = '/home/linux/test/1.txt'
#獲取文件修改時(shí)間
print('ctime:',os.path.getctime(path), 'mtime:', os.path.getmtime(path))
#修改文件權(quán)限
os.chmod(path, 777)
#獲取文件修改時(shí)間
print('ctime:',os.path.getctime(path), 'mtime:', os.path.getmtime(path))
#獲取文件大小
print(os.path.getsize(path))

輸出結(jié)果:

ctime: 1554518401.870203 mtime: 1554518401.870203
ctime: 1554518438.9467654 mtime: 1554518401.870203
5

3:其他一些方法

方法 說(shuō)明
os.system(command)執(zhí)行命令
os._exit(status)退出當(dāng)前進(jìn)程,需要添加退出狀態(tài)
os.getenv(key, default=None)獲取指定環(huán)境變量
os.putenv(name, value, /)設(shè)置指定環(huán)境變量
os.environ環(huán)境變量獲取與設(shè)置

os._exit可以直接讓當(dāng)前運(yùn)行程序退出,并能夠添加退出狀態(tài);
我們首先來(lái)看system的使用,我們要在一直指定目錄創(chuàng)建文件,
linux下創(chuàng)建目錄的shell 命令:touch fname;

path = '/home/linux/test/tmp'
print(os.listdir(path))
fname = os.path.join(path, '1.txt')
print(fname)
#創(chuàng)建文件
os.system('/usr/bin/touch %s'%fname)
print(os.listdir(path))

輸出結(jié)果:

[]
/home/linux/test/tmp/1.txt
['1.txt']

可以看到使用system在path目錄中創(chuàng)建文件。

下面再來(lái)看環(huán)境變量設(shè)置,這里我們有兩種方式獲取環(huán)境變量:

1>os.getenv,根據(jù)環(huán)境變量名稱(chēng)直接獲取,如果沒(méi)有獲取值為None
2>os.environ,獲取系統(tǒng)所有環(huán)境變量,可以使用字典方式去獲取設(shè)置環(huán)境變量;

對(duì)應(yīng)設(shè)置環(huán)境變量,os.putenv對(duì)于某些平臺(tái)可能不支持,可以使用os.environ設(shè)置;
下面我們拉具體操作:

print('HOME=', os.getenv('HOME'))
#設(shè)置環(huán)境變量
os.putenv('Test', 'testval')
#獲取環(huán)境變量
print('Test=', os.getenv('Test'))
#使用environ
print('environ[HOME]=', os.environ['HOME'])
#設(shè)置環(huán)境變量Test
os.environ['Test'] = 'testval'
#獲取環(huán)境變量
print('Test=', os.getenv('Test'))

可以看到,在ubuntu中使用putenv不生效,我們可以使用os.environ替換。
os模塊還有很多其他常用方法與屬性,遇到問(wèn)題可以查閱官網(wǎng)文檔。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:os模塊目錄操作詳解-創(chuàng)新互聯(lián)
文章地址:http://jinyejixie.com/article30/ghspo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、電子商務(wù)、Google企業(yè)建站、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
类乌齐县| 罗源县| 绥化市| 涡阳县| 沾化县| 开封市| 商都县| 虞城县| 休宁县| 迁安市| 永兴县| 托克托县| 广元市| 平乐县| 鄂伦春自治旗| 青海省| 郎溪县| 龙陵县| 德阳市| 昌黎县| 洞口县| 称多县| 布尔津县| 常山县| 延津县| 泸水县| 丁青县| 葵青区| 苗栗市| 综艺| 和平区| 南投市| 施秉县| 广饶县| 胶南市| 浮梁县| 徐州市| 漾濞| 甘洛县| 十堰市| 朝阳区|