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

Python?中OS?module的使用詳解

 更新時(shí)間:2023年03月15日 16:56:53   作者:芯片后端工程師-ratel  
這篇文章主要介紹了Python?中OS?module的使用詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Python的os模塊是用于與操作系統(tǒng)進(jìn)行交互的標(biāo)準(zhǔn)庫(kù)之一,它提供了許多有用的函數(shù)和變量,以便處理文件和目錄。下面是一些常見(jiàn)的os模塊函數(shù)的用法:

1.獲取當(dāng)前工作目錄:

import os
cwd = os.getcwd()
print(cwd)

2.切換當(dāng)前工作目錄:

import os
os.chdir('/path/to/new/directory')

3.列出目錄中的所有文件和子目錄:

import os
files = os.listdir('/path/to/directory')
print(files)

4.檢查給定的路徑是否為目錄:

import os
path = '/path/to/directory'
if os.path.isdir(path):
    print("It's a directory")
else:
    print("It's not a directory")

5.檢查給定的路徑是否為文件:

import os
path = '/path/to/file'
if os.path.isfile(path):
    print("It's a file")
else:
    print("It's not a file")

6.獲取文件的大小(以字節(jié)為單位):

import os
path = '/path/to/file'
size = os.path.getsize(path)
print(size)

7.檢查給定的路徑是否存在:

import os
path = '/path/to/file_or_directory'
if os.path.exists(path):
    print("It exists")
else:
    print("It doesn't exist")

8.創(chuàng)建新目錄:

import os
path = '/path/to/new/directory'
os.mkdir(path)

9.遞歸創(chuàng)建新目錄(如果目錄不存在):

import os
path = '/path/to/new/directory'
os.makedirs(path, exist_ok=True)

10.刪除文件或空目錄:

import os
path = '/path/to/file_or_directory'
os.remove(path)

11.遞歸刪除目錄及其內(nèi)容:

import os
path = '/path/to/directory'
os.system('rm -rf ' + path)

其它一些便捷用法:

12.os.path.splitext() 方法是將一個(gè)路徑分割成文件名和擴(kuò)展名兩部分。它會(huì)以文件名中的最后一個(gè) "." 作為分隔符,將文件名和擴(kuò)展名分開(kāi)。例如,如果文件路徑為 "/path/to/file.txt",則 os.path.splitext() 方法會(huì)返回一個(gè)元組 ("/path/to/file", ".txt")。

需要注意的是,如果文件名中沒(méi)有 ".",則返回的擴(kuò)展名為空字符串。如果文件名以 "." 開(kāi)頭,則視為無(wú)擴(kuò)展名文件,os.path.splitext() 方法將返回 (文件路徑, '')。

以下是一個(gè)例子:

import os
path = '/path/to/file.txt'
file_name, ext = os.path.splitext(path)
print('文件名為:', file_name)
print('擴(kuò)展名為:', ext)

輸出結(jié)果為:

文件名為: /path/to/file
擴(kuò)展名為: .txt

13.設(shè)置文件權(quán)限:

import os
os.chmod('/path/to/file', 0o777) # 設(shè)置讀、寫(xiě)、執(zhí)行權(quán)限

os.chmod() 方法可以用來(lái)修改文件或目錄的訪(fǎng)問(wèn)權(quán)限。它接受兩個(gè)參數(shù):文件路徑和新的權(quán)限模式。權(quán)限模式可以使用八進(jìn)制數(shù)表示,每個(gè)位表示不同的權(quán)限。

以下是一些權(quán)限模式的示例:

  • 0o400:只讀權(quán)限
  • 0o200:寫(xiě)入權(quán)限
  • 0o100:執(zhí)行權(quán)限
  • 0o700:所有權(quán)限

14.獲取CPU數(shù)量:

import os
cpu_count = os.cpu_count()
print('CPU數(shù)量為:', cpu_count)

需要注意的是,os.cpu_count() 返回的CPU數(shù)量是物理CPU核心數(shù),并不包括超線(xiàn)程技術(shù)的虛擬核心。在具有超線(xiàn)程技術(shù)的系統(tǒng)中,每個(gè)物理CPU核心都會(huì)被劃分為兩個(gè)虛擬核心,因此os.cpu_count()方法可能會(huì)返回比實(shí)際CPU核心數(shù)多的數(shù)量。

另外,os.cpu_count()方法在不同的操作系統(tǒng)上可能會(huì)有不同的實(shí)現(xiàn)。在某些操作系統(tǒng)上,它可能只返回邏輯CPU核心數(shù),而不是物理CPU核心數(shù)。因此,在使用該方法時(shí),最好查閱相關(guān)的文檔以獲取更多信息。

15.啟動(dòng)新進(jìn)程:

import os
os.system('notepad.exe')

os.system() 方法可以在操作系統(tǒng)上執(zhí)行一個(gè)命令,并返回命令的退出狀態(tài)碼。它的參數(shù)是一個(gè)字符串類(lèi)型的命令,可以是任何有效的系統(tǒng)命令。

以下是一個(gè)示例,演示了如何使用os.system()方法來(lái)執(zhí)行一個(gè)簡(jiǎn)單的命令:

import os
os.system('echo "Hello, World!"')

上述代碼將輸出Hello, World!字符串,并返回命令的退出狀態(tài)碼(通常為0表示成功)。

需要注意的是,os.system() 方法會(huì)阻塞當(dāng)前進(jìn)程,直到命令執(zhí)行完成。如果希望在執(zhí)行命令時(shí)不阻塞當(dāng)前進(jìn)程,可以考慮使用subprocess模塊中的其他方法,如subprocess.Popen()。

以下是另一個(gè)示例,演示了如何使用os.system()方法來(lái)執(zhí)行一個(gè)復(fù)雜的命令,比如在Linux系統(tǒng)上使用wget下載一個(gè)文件:

import os
url = 'https://example.com/file.zip'
output_dir = '/path/to/output'
command = f'wget {url} -P {output_dir}'
os.system(command)

上述代碼會(huì)將url參數(shù)指定的文件下載到output_dir參數(shù)指定的目錄中,并返回命令的退出狀態(tài)碼。

16.os.environ:這是一個(gè)包含當(dāng)前環(huán)境變量的字典??梢允褂胦s.environ[key]獲取特定環(huán)境變量的值。

17.os.exec*():這些方法允許Python程序在當(dāng)前進(jìn)程中執(zhí)行其他程序,取代當(dāng)前進(jìn)程。例如,os.execv() 方法可以使用指定的參數(shù)列表執(zhí)行一個(gè)程序,取代當(dāng)前進(jìn)程。

18.os.fork():這個(gè)方法可以在Unix或Linux操作系統(tǒng)上創(chuàng)建一個(gè)子進(jìn)程,用于并行執(zhí)行程序。子進(jìn)程將復(fù)制父進(jìn)程的所有內(nèi)存內(nèi)容,包括代碼、數(shù)據(jù)和堆棧等,因此可以在父進(jìn)程的基礎(chǔ)上繼續(xù)執(zhí)行程序。

19.os.kill():這個(gè)方法用于向指定進(jìn)程發(fā)送信號(hào)??梢允褂胦s.kill(pid, signal)方法向指定的進(jìn)程發(fā)送指定的信號(hào)。常用的信號(hào)包括SIGINT(中斷信號(hào))、SIGTERM(終止信號(hào))和SIGKILL(強(qiáng)制終止信號(hào))等。

20.os.pipe():這個(gè)方法可以創(chuàng)建一個(gè)管道,用于在進(jìn)程之間進(jìn)行通信。os.pipe()方法將返回兩個(gè)文件描述符,一個(gè)用于讀取管道數(shù)據(jù),另一個(gè)用于寫(xiě)入管道數(shù)據(jù)。

21.os.wait():這個(gè)方法可以等待子進(jìn)程的結(jié)束,然后返回子進(jìn)程的狀態(tài)碼。可以使用os.waitpid(pid, options)方法等待指定的進(jìn)程結(jié)束,并返回進(jìn)程的狀態(tài)碼。

22.os模塊可以用來(lái)操作文件路徑。例如,os.path.join(path, *paths)可以將多個(gè)路徑拼接成一個(gè)完整路徑,os.path.abspath(path)可以將相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑,os.path.split(path)可以將路徑分割成目錄和文件名。

23.遍歷目錄樹(shù)

import os
def list_files(path):
    for root, dirs, files inos.walk(path):
        for file in files:
            print(os.path.join(root, file))
list_files('.')

這段代碼可以遍歷當(dāng)前工作目錄及其子目錄下的所有文件,并打印出它們的完整路徑。

os.walk()是os模塊中一個(gè)非常有用的函數(shù),用于遍歷指定目錄及其子目錄下的所有文件和目錄。它返回一個(gè)三元組(root, dirs, files),其中root是當(dāng)前目錄的路徑,dirs是當(dāng)前目錄下的子目錄列表,files是當(dāng)前目錄下的文件列表。下面是一個(gè)os.walk()的詳細(xì)解釋和示例:

for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False):
    # Do something with root, dirs, and files

top是指定的目錄路徑,可以是相對(duì)路徑或絕對(duì)路徑。

  • topdown是一個(gè)布爾值,表示遍歷時(shí)是否先遍歷當(dāng)前目錄,再遍歷子目錄。如果為T(mén)rue(默認(rèn)值),則先遍歷當(dāng)前目錄,再遍歷子目錄;如果為False,則先遍歷子目錄,再遍歷當(dāng)前目錄。
  • onerror是一個(gè)可選的錯(cuò)誤處理函數(shù),如果在遍歷過(guò)程中出現(xiàn)錯(cuò)誤,則會(huì)調(diào)用這個(gè)函數(shù)。
  • followlinks是一個(gè)布爾值,表示是否跟隨符號(hào)鏈接。如果為T(mén)rue,則會(huì)跟隨符號(hào)鏈接遍歷目錄;如果為False(默認(rèn)值),則會(huì)忽略符號(hào)鏈接。

在遍歷過(guò)程中,os.walk()會(huì)依次遍歷指定目錄及其子目錄下的所有文件和目錄,并返回當(dāng)前目錄的路徑、子目錄列表和文件列表??梢酝ㄟ^(guò)遍歷返回的三元組來(lái)處理目錄和文件。例如,可以使用下面的代碼列出指定目錄下的所有文件和子目錄:

import os
 
def list_files_and_dirs(path):
    for root, dirs, files in os.walk(path):
        print(f'Directory: {root}')
        for file in files:
            print(f'  File: {os.path.join(root, file)}')
        for dir in dirs:
            print(f'  Subdirectory: {os.path.join(root, dir)}')
 
list_files_and_dirs('.')

這段代碼會(huì)遍歷當(dāng)前工作目錄及其子目錄下的所有文件和目錄,并輸出相應(yīng)的信息。

需要注意的是,os.walk()只會(huì)遍歷當(dāng)前目錄及其子目錄下的文件和目錄,不會(huì)遍歷符號(hào)鏈接所指向的文件或目錄。如果需要遍歷符號(hào)鏈接所指向的文件或目錄,需要設(shè)置followlinks=True。

到此這篇關(guān)于Python 中OS module的使用詳解的文章就介紹到這了,更多相關(guān)Python OS module使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn)

    梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python手機(jī)與電腦游戲腳本的編寫(xiě)方法

    Python手機(jī)與電腦游戲腳本的編寫(xiě)方法

    本文給大家分享一個(gè)手機(jī)和電腦雙平臺(tái)的游戲腳本,幫助大家贏得游戲,步驟很簡(jiǎn)單,下面小編給大家分享基于Python游戲腳本的編寫(xiě)方法,感興趣的朋友一起看看吧
    2021-11-11
  • 分享3個(gè)簡(jiǎn)單的Python代碼高效運(yùn)行技巧

    分享3個(gè)簡(jiǎn)單的Python代碼高效運(yùn)行技巧

    這篇文章主要介紹了分享3個(gè)簡(jiǎn)單的Python代碼高效運(yùn)行技巧,下面主要分享三個(gè)有效的,方便理解的,執(zhí)行高效的實(shí)用技巧,需要的朋友可以參考一下
    2022-03-03
  • python主動(dòng)拋出異常raise的方法實(shí)現(xiàn)

    python主動(dòng)拋出異常raise的方法實(shí)現(xiàn)

    本文主要介紹了python主動(dòng)拋出異常raise的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • tensorflow 獲取checkpoint中的變量列表實(shí)例

    tensorflow 獲取checkpoint中的變量列表實(shí)例

    今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python 保存加載mat格式文件的示例代碼

    Python 保存加載mat格式文件的示例代碼

    這篇文章主要介紹了Python 保存加載mat格式文件的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python使用pymeter操作JMeter的教程詳解

    Python使用pymeter操作JMeter的教程詳解

    pymeter?是一個(gè)?Python?庫(kù),它可以以編程方式創(chuàng)建和運(yùn)行?JMeter?測(cè)試計(jì)劃,下面就跟隨小編一起來(lái)看看Python如何使用pymeter操作JMeter的吧
    2024-01-01
  • Python之ThreadPoolExecutor線(xiàn)程池問(wèn)題

    Python之ThreadPoolExecutor線(xiàn)程池問(wèn)題

    這篇文章主要介紹了Python之ThreadPoolExecutor線(xiàn)程池問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Django組件content-type使用方法詳解

    Django組件content-type使用方法詳解

    這篇文章主要介紹了Django組件content-type使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 詳細(xì)介紹pandas的DataFrame的append方法使用

    詳細(xì)介紹pandas的DataFrame的append方法使用

    這篇文章主要介紹了詳細(xì)介紹pandas的DataFrame的append方法使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

荃湾区| 若尔盖县| 察隅县| 彭山县| 灵山县| 和静县| 都江堰市| 荆门市| 汝南县| 临澧县| 东乡族自治县| 元阳县| 张家界市| 泌阳县| 乳源| 岐山县| 双峰县| 城固县| 丰镇市| 会同县| 新建县| 孟津县| 那坡县| 红原县| 阿巴嘎旗| 长丰县| 南丰县| 繁昌县| 朝阳市| 营口市| 河北区| 和政县| 阿图什市| 富蕴县| 南召县| 应城市| 丘北县| 余干县| 浑源县| 尉犁县| 稷山县|