Python的os模組是用於與作業系統互動的標準庫之一,它提供了許多有用的函數和變量,以便處理檔案和目錄。以下是一些常見的os模組函數的用法:
1.取得目前工作目錄:
import os cwd = os.getcwd() print(cwd)
2.切換目前工作目錄:
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.取得檔案的大小(以位元組為單位):
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.建立新目錄:
import os path = '/path/to/new/directory' os.mkdir(path)
9.遞歸建立新目錄(如果目錄不存在):
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.遞迴刪除目錄及其內容:
import os path = '/path/to/directory' os.system('rm -rf ' + path)
其它一些便捷用法:
12.os.path.splitext() 方法是將一個路徑分割成檔案名稱和副檔名兩部分。它會以檔案名稱中的最後一個 "." 作為分隔符,將檔案名稱和副檔名分開。例如,如果檔案路徑為 "/path/to/file.txt",則 os.path.splitext() 方法會傳回一個元組 ("/path/to/file", ".txt")。
要注意的是,如果檔案名稱中沒有 ".",則傳回的副檔名為空字串。如果檔案名稱以 "." 開頭,則視為無副檔名文件,os.path.splitext() 方法將會傳回 (檔案路徑, '')。
以下是一個範例:
import os path = '/path/to/file.txt' file_name, ext = os.path.splitext(path) print('文件名为:', file_name) print('扩展名为:', ext)
輸出結果為:
檔名: /path/to/file
副檔名為: .txt
13.設定檔案權限:
import os os.chmod('/path/to/file', 0o777) # 设置读、写、执行权限
os.chmod() 方法可以用來修改檔案或目錄的存取權限。它接受兩個參數:檔案路徑和新的權限模式。權限模式可以使用八進制數表示,每個位元表示不同的權限。
以下是一些權限模式的範例:
0o400:只讀權限
0o200:寫入權限
0o100:執行權限
0o700:所有權限
import os cpu_count = os.cpu_count() print('CPU数量为:', cpu_count)
import os os.system('notepad.exe')
import os os.system('echo "Hello, World!"')
import os url = 'https://example.com/file.zip' output_dir = '/path/to/output' command = f'wget {url} -P {output_dir}' os.system(command)
22.os模块可以用来操作文件路径。例如,os.path.join(path, *paths)可以将多个路径拼接成一个完整路径,os.path.abspath(path)可以将相对路径转换为绝对路径,os.path.split(path)可以将路径分割成目录和文件名。
23.遍历目录树
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('.')
这段代码可以遍历当前工作目录及其子目录下的所有文件,并打印出它们的完整路径。
os.walk()是os模块中一个非常有用的函数,用于遍历指定目录及其子目录下的所有文件和目录。它返回一个三元组(root, dirs, files),其中root是当前目录的路径,dirs是当前目录下的子目录列表,files是当前目录下的文件列表。下面是一个os.walk()的详细解释和示例:
for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False): # Do something with root, dirs, and files
top是指定的目录路径,可以是相对路径或绝对路径。
topdown是一个布尔值,表示遍历时是否先遍历当前目录,再遍历子目录。如果为True(默认值),则先遍历当前目录,再遍历子目录;如果为False,则先遍历子目录,再遍历当前目录。
onerror是一个可选的错误处理函数,如果在遍历过程中出现错误,则会调用这个函数。
followlinks是一个布尔值,表示是否跟随符号链接。如果为True,则会跟随符号链接遍历目录;如果为False(默认值),则会忽略符号链接。
在遍历过程中,os.walk()会依次遍历指定目录及其子目录下的所有文件和目录,并返回当前目录的路径、子目录列表和文件列表。可以通过遍历返回的三元组来处理目录和文件。例如,可以使用下面的代码列出指定目录下的所有文件和子目录:
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('.')
这段代码会遍历当前工作目录及其子目录下的所有文件和目录,并输出相应的信息。
需要注意的是,os.walk()只会遍历当前目录及其子目录下的文件和目录,不会遍历符号链接所指向的文件或目录。如果需要遍历符号链接所指向的文件或目录,需要设置followlinks=True。
以上是Python的OS模組的使用方法及範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!