python 操作檔案和目錄

2021-09-07 18:43:54 字數 3241 閱讀 2771

python的 os 模組:

import

osos.name

#作業系統型別

如果是 posix ,說明系統是linuxunixmac os x,如果是 nt ,就是windows系統。

os.uname() # 作業系統詳情
uname() 函式在windows上不提供,也就是說, os 模組的某些函式是跟作業系統相關的。

os.environ  # 作業系統中定義的環境變數

os.environ.get('

path

') # 獲取作業系統中定義的某個環境變數,此處是'path'

操作檔案和目錄的函式一部分放在os模組中,一部分放在os.path模組中,這一點要注意一下。

#

檢視當前目錄的絕對路徑:

os.path.abspath('.'

)'/users/yhjin'

#在某個目錄下建立乙個新目錄,首先把新目錄的完整路徑表示出來:

new_file_path = os.path.join('

/users/yhjin', '

testdir

') '/users/yhjin/testdir'

#然後建立乙個目錄:

os.mkdir(new_file_path)

#

刪掉乙個目錄:

os.rmdir(new_file_path)

*注意: 把兩個路徑合成乙個時,不要直接拼字串,而要通過 os.path.join() 函式,這樣可以正確處理不同作業系統的路徑分隔符。在linux/unix/mac下, os.path.join() 返回這樣的字串:

part-1/part-2
而windows下會返回這樣的字串:

part-1\part-2
os.path.split() 函式,把乙個路徑拆分為兩部分,後一部分總是最後級別的目錄或檔名:

os.path.split('

/users/yhjin/test')

('/users/yhjin

', '

test

')

os.path.splitext() 函式, 把乙個路徑拆分為兩部分, 後一部分是副檔名(注意是帶'.'的):

os.path.splitext('

/path/to/file.txt

')('/path/to/file', '.txt')

*注意: 這些合併、拆分路徑的函式並不要求目錄和檔案要真實存在,它們只對字串進行操作。

#

對檔案重新命名:

os.rename('/users/yhjin/testdir/test.log','/users/yhjin/testdir/test.txt')

#刪掉檔案:

os.remove('/users/yhjin/testdir/test.txt')

os 模組無法複製檔案,需要複製檔案可以使用 shutil模組的 copyfile() 函式.

其他一些常用方法:

#

列出指定路徑下的所有檔名和資料夾名

os.listdir('

.')

#

判斷指定路徑是否是資料夾

os.path.isdir('

/users/yhjin/testdir')

true

#

判斷指定路徑是否是檔案

os.path.isfile('

/users/yhjin/testdir

')

#

獲取檔案大小

')

一些栗子:

#

獲取當前路徑下的所有資料夾名

[x for x in os.listdir('

.') if os.path.isdir(x)]

#

獲取當前路徑下的所有.py檔案

[x for x in os.listdir('

.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.

py']

綜合栗子:

在當前目錄以及當前目錄的所有子目錄下查詢檔案名包含指定字串的檔案,並列印出相對路徑。

比如以上檔案結構,找出test目錄下的所有帶有'test'的檔名, 並列印出相對路徑。

import

ospathout = os.path.abspath('.'

)def

search(path, search_text):

files = [x for x in os.listdir(path) if

os.path.isfile(os.path.join(path, x))]

for i in

files:

if search_text in

i:

print

(os.path.join(path, i))

dirs = [x for x in os.listdir(path) if

os.path.isdir(os.path.join(path, x))]

for i in

dirs:

search(os.path.join(path, i), search_text)

search(pathout,

'test')

#這裡需要注意的是,isfile和isdir傳入的必需是完整的 路徑+檔案 ,所以需要使用os.path.join方法,而不是只傳入x

輸出如下:

Python操作檔案和目錄

對檔案和目錄進行操作是在我們開發過程中必不可少的一環,下面是我整理的一些常用的對檔案和目錄進行操作的語句,希望能幫到你 首先是導包,匯入包os import os 1 獲取當前python指令碼工作的檔案目錄 os.getcwd 2 返回指定目錄下的所有檔名和目錄 os.listdir 3 刪除乙個...

python, 操作檔案和目錄

作業系統提供的命令只是簡單地呼叫了作業系統提供的介面函式,python內建的os模組也可以直接呼叫作業系統提供的介面函式 importos 作業系統型別 os.name posix linux unix或mac os x,nt windows系統 要獲取詳細的系統資訊,windows上不提供 os....

python 操作檔案和目錄

import os os.name 作業系統名字 os.environ 版本 要獲取某個環境變數的值,可以呼叫os.getenv 函式 os.getenv path 操作檔案和目錄的函式一部分放在os模組中,一部分放在os.path模組中 檢視當前目錄的絕對路徑 os.path.abspath us...