Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan modul dan contoh OS Python

Cara menggunakan modul dan contoh OS Python

PHPz
PHPzke hadapan
2023-04-22 22:19:172882semak imbas

Modul os Python ialah salah satu perpustakaan standard yang digunakan untuk berinteraksi dengan sistem pengendalian Ia menyediakan banyak fungsi dan pembolehubah yang berguna untuk bekerja dengan fail dan direktori. Berikut ialah penggunaan beberapa fungsi modul os biasa:

1 Dapatkan direktori kerja semasa:

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

2 Tukar direktori kerja semasa:

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

3 .Senaraikan semua fail dan subdirektori dalam direktori:

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

4 Periksa sama ada laluan yang diberikan ialah direktori:

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

5 a fail :

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

6 Dapatkan saiz fail (dalam bait):

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

7 Periksa sama ada laluan yang diberikan wujud:

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

8. Cipta direktori baharu:

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

9 Buat direktori baharu secara rekursif (jika direktori itu tidak wujud):

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

10 direktori:

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

11 Padamkan direktori dan kandungannya secara rekursif:

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

Beberapa kegunaan lain yang mudah:

12.os.path.splitext() kaedah adalah untuk memisahkan laluan ke dalam nama fail dan sambungan. Ia menggunakan "." terakhir dalam nama fail sebagai pembatas untuk memisahkan nama fail dan sambungan. Contohnya, jika laluan fail ialah "/path/to/file.txt", kaedah os.path.splitext() mengembalikan tuple ("/path/to/file", ".txt").

Perlu diambil perhatian bahawa jika tiada "." dalam nama fail, sambungan yang dikembalikan ialah rentetan kosong. Jika nama fail bermula dengan ".", ia dianggap sebagai fail tanpa sambungan dan kaedah os.path.splitext() akan kembali (laluan fail, '').

Berikut ialah contoh:

import os
path = '/path/to/file.txt'
file_name, ext = os.path.splitext(path)
print('文件名为:', file_name)
print('扩展名为:', ext)

Hasil output ialah:

Nama fail ialah: /path/to/file
The sambungan ialah: .txt

13. Tetapkan kebenaran fail:

import os
os.chmod('/path/to/file', 0o777) # 设置读、写、执行权限

Kaedah os.chmod() boleh digunakan untuk mengubah suai kebenaran akses fail atau direktori. Ia menerima dua parameter: laluan fail dan mod kebenaran baharu. Mod kebenaran boleh diwakili oleh nombor perlapanan, dengan setiap bit mewakili kebenaran yang berbeza.

Berikut ialah beberapa contoh mod kebenaran:

  • 0o400: Keizinan baca sahaja

  • 0o200: Keizinan tulis

  • 0o100: Laksanakan kebenaran

  • 0o700: Semua kebenaran

Dapatkan bilangan CPU:

import os
cpu_count = os.cpu_count()
print('CPU数量为:', cpu_count)

Perlu diambil perhatian bahawa bilangan CPU yang dikembalikan oleh os.cpu_count() ialah bilangan teras CPU fizikal dan tidak termasuk teras maya teknologi hyper-threading. Dalam sistem dengan Teknologi Hyper-Threading, setiap teras CPU fizikal dibahagikan kepada dua teras maya, jadi kaedah os.cpu_count() boleh mengembalikan nombor yang lebih besar daripada bilangan sebenar teras CPU.

Selain itu, kaedah os.cpu_count() mungkin mempunyai pelaksanaan yang berbeza pada sistem pengendalian yang berbeza. Pada sesetengah sistem pengendalian ia mungkin hanya mengembalikan bilangan teras CPU logik, bukan bilangan teras CPU fizikal. Oleh itu, apabila menggunakan kaedah ini, sebaiknya rujuk dokumentasi yang berkaitan untuk mendapatkan maklumat lanjut.

15 Mulakan proses baharu:

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

Kaedah os.system() boleh melaksanakan perintah pada sistem pengendalian dan mengembalikan kod status keluar bagi arahan itu. Parameternya ialah perintah jenis rentetan, yang boleh menjadi sebarang perintah sistem yang sah.

Berikut ialah contoh yang menunjukkan cara menggunakan kaedah os.system() untuk melaksanakan arahan mudah:

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

Kod di atas akan mengeluarkan rentetan Hello, World! kembalikan Kod status keluar arahan (biasanya 0 untuk kejayaan).

Perlu diambil perhatian bahawa kaedah os.system() akan menyekat proses semasa sehingga pelaksanaan arahan selesai. Jika anda ingin melaksanakan arahan tanpa menyekat proses semasa, anda boleh mempertimbangkan untuk menggunakan kaedah lain dalam modul subproses, seperti subprocess.Popen().

Berikut ialah contoh lain yang menunjukkan cara menggunakan kaedah os.system() untuk melaksanakan perintah yang kompleks, seperti menggunakan wget untuk memuat turun fail pada sistem Linux:

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

Di atas Kod akan memuat turun fail yang ditentukan oleh parameter url ke direktori yang ditentukan oleh parameter output_dir dan mengembalikan kod status keluar arahan.

16.os.environ: Ini ialah kamus yang mengandungi pembolehubah persekitaran semasa. Anda boleh menggunakan os.environ[key] untuk mendapatkan nilai pembolehubah persekitaran tertentu.

17.os.exec*(): Kaedah ini membenarkan program Python untuk melaksanakan program lain dalam proses semasa, menggantikan proses semasa. Sebagai contoh, kaedah os.execv() boleh melaksanakan atur cara menggunakan senarai hujah yang ditentukan, menggantikan proses semasa.

18.os.fork(): Kaedah ini boleh mencipta proses anak pada sistem pengendalian Unix atau Linux untuk pelaksanaan program yang selari. Proses anak akan menyalin semua kandungan memori proses induk, termasuk kod, data, tindanan, dsb., supaya atur cara boleh terus dilaksanakan berdasarkan proses induk.

19.os.kill(): Kaedah ini digunakan untuk menghantar isyarat kepada proses yang ditentukan. Anda boleh menggunakan kaedah os.kill(pid, signal) untuk menghantar isyarat tertentu kepada proses tertentu. Isyarat yang biasa digunakan termasuk SIGINT (isyarat sampukan), SIGTERM (isyarat penamatan) dan SIGKILL (isyarat penamatan paksa), dsb.

20.os.pipe(): Kaedah ini boleh mencipta paip untuk komunikasi antara proses. Kaedah os.pipe() akan mengembalikan dua deskriptor fail, satu untuk membaca data paip dan satu lagi untuk menulis data paip.

21.os.wait(): Kaedah ini boleh menunggu akhir proses anak dan kemudian mengembalikan kod status proses anak. Anda boleh menggunakan kaedah os.waitpid(pid, options) untuk menunggu proses yang ditentukan tamat dan mengembalikan kod status proses tersebut.

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。

Atas ialah kandungan terperinci Cara menggunakan modul dan contoh OS Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam