Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung des Betriebssystemmoduls von Python und Beispiele

Verwendung des Betriebssystemmoduls von Python und Beispiele

PHPz
PHPznach vorne
2023-04-22 22:19:172882Durchsuche

Das Betriebssystemmodul von Python ist eine der Standardbibliotheken für die Interaktion mit dem Betriebssystem. Es bietet viele nützliche Funktionen und Variablen für die Arbeit mit Dateien und Verzeichnissen. Im Folgenden finden Sie die Verwendung einiger allgemeiner Betriebssystemmodulfunktionen:

1. Rufen Sie das aktuelle Arbeitsverzeichnis ab:

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

3. Listen Sie alle Dateien und Unterverzeichnisse im Verzeichnis auf:

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

4. Überprüfen Sie, ob der angegebene Pfad ein Verzeichnis ist:

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

5. Überprüfen Sie, ob der angegebene Pfad eine Datei ist:

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

6 eine Datei Existiert:

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

8. Erstellen Sie rekursiv ein neues Verzeichnis (falls das Verzeichnis nicht existiert):

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

. Löschen Sie eine Datei oder ein leeres Verzeichnis:

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

11. Löschen Sie ein Verzeichnis und seinen Inhalt rekursiv:

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

Einige andere praktische Verwendungsmöglichkeiten:

Die Methode 12.os.path.splitext() besteht darin, einen Pfad in zwei Teile aufzuteilen: Dateiname und Erweiterung. Es verwendet das letzte „.“ im Dateinamen als Trennzeichen, um den Dateinamen und die Erweiterung zu trennen. Wenn der Dateipfad beispielsweise „/path/to/file.txt“ lautet, gibt die Methode os.path.splitext() ein Tupel („/path/to/file“, „.txt“) zurück.

Es ist zu beachten, dass die zurückgegebene Erweiterung eine leere Zeichenfolge ist, wenn der Dateiname kein „.“ enthält. Wenn der Dateiname mit „.“ beginnt, wird er als Datei ohne Erweiterung betrachtet und die Methode os.path.splitext() gibt (Dateipfad, '') zurück.

Das Folgende ist ein Beispiel:

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

Das Ausgabeergebnis ist:

Der Dateiname ist: /path/to/file

Die Erweiterung ist: .txt

13. Dateiberechtigungen festlegen:
import os
path = '/path/to/file_or_directory'
os.remove(path)

os Mit der Methode .chmod( ) können Sie die Zugriffsberechtigungen einer Datei oder eines Verzeichnisses ändern. Es akzeptiert zwei Parameter: Dateipfad und neuer Berechtigungsmodus. Der Berechtigungsmodus kann durch eine Oktalzahl dargestellt werden, wobei jedes Bit eine andere Berechtigung darstellt.

Hier sind einige Beispiele für Berechtigungsmuster:

0o400: Nur-Lese-Berechtigungen

    0o200: Schreibberechtigungen
  • 0o100: Ausführungsberechtigungen
  • 0o700: Alle Berechtigungen
  • 14 die Anzahl der CPUs:
  • import os
    path = '/path/to/directory'
    os.system('rm -rf ' + path)

    Es ist zu beachten, dass die von os.cpu_count() zurückgegebene Anzahl der CPUs die Anzahl der physischen CPU-Kerne ist und nicht die virtuellen Kerne der Hyper-Threading-Technologie umfasst. In Systemen mit Hyper-Threading-Technologie ist jeder physische CPU-Kern in zwei virtuelle Kerne unterteilt, sodass die Methode os.cpu_count() möglicherweise eine Zahl zurückgibt, die größer ist als die tatsächliche Anzahl der CPU-Kerne.

  • Darüber hinaus kann die Methode os.cpu_count() auf verschiedenen Betriebssystemen unterschiedliche Implementierungen haben. Auf einigen Betriebssystemen wird möglicherweise nur die Anzahl der logischen CPU-Kerne zurückgegeben, nicht die Anzahl der physischen CPU-Kerne. Wenn Sie diese Methode verwenden, sollten Sie daher am besten die entsprechende Dokumentation konsultieren, um weitere Informationen zu erhalten.

15. Starten Sie einen neuen Prozess: Die Methode

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

os.system() kann einen Befehl auf dem Betriebssystem ausführen und den Exit-Statuscode des Befehls zurückgeben. Sein Parameter ist ein Befehl vom Typ String, der jeder gültige Systembefehl sein kann.

Das Folgende ist ein Beispiel, das zeigt, wie die Methode os.system() zum Ausführen eines einfachen Befehls verwendet wird:

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

Der obige Code gibt die Zeichenfolge „Hello, World!“ aus und gibt den Exit-Statuscode des Befehls zurück (normalerweise dargestellt durch 0 Erfolg).

Es ist zu beachten, dass die Methode os.system() den aktuellen Prozess blockiert, bis die Befehlsausführung abgeschlossen ist. Wenn Sie den Befehl ausführen möchten, ohne den aktuellen Prozess zu blockieren, können Sie die Verwendung anderer Methoden im Unterprozessmodul in Betracht ziehen, beispielsweise subprocess.Popen().

Das Folgende ist ein weiteres Beispiel, das zeigt, wie die Methode os.system() verwendet wird, um einen komplexen Befehl auszuführen, z. B. die Verwendung von wget zum Herunterladen einer Datei auf einem Linux-System:

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

Der obige Code lädt die von angegebene Datei herunter Der URL-Parameter wechselt in das durch den Parameter „output_dir“ angegebene Verzeichnis und gibt den Exit-Statuscode des Befehls zurück.

16.os.environ: Dies ist ein Wörterbuch, das die aktuellen Umgebungsvariablen enthält. Sie können os.environ[key] verwenden, um den Wert einer bestimmten Umgebungsvariablen abzurufen.

17.os.exec*(): Diese Methoden ermöglichen es Python-Programmen, andere Programme im aktuellen Prozess auszuführen und so den aktuellen Prozess zu ersetzen. Beispielsweise kann die Methode os.execv() ein Programm mithilfe einer angegebenen Argumentliste ausführen und so den aktuellen Prozess ersetzen.

18.os.fork(): Diese Methode kann einen untergeordneten Prozess auf dem Unix- oder Linux-Betriebssystem zur parallelen Ausführung von Programmen erstellen. Der untergeordnete Prozess kopiert den gesamten Speicherinhalt des übergeordneten Prozesses, einschließlich Code, Daten, Stapel usw., sodass das Programm weiterhin basierend auf dem übergeordneten Prozess ausgeführt werden kann.

19.os.kill(): Diese Methode wird verwendet, um ein Signal an den angegebenen Prozess zu senden. Sie können die Methode os.kill(pid, signal) verwenden, um ein bestimmtes Signal an einen bestimmten Prozess zu senden. Zu den häufig verwendeten Signalen gehören SIGINT (Interrupt-Signal), SIGTERM (Beendigungssignal) und SIGKILL (erzwungenes Beendigungssignal) usw.

20.os.pipe(): Diese Methode kann eine Pipe für die Kommunikation zwischen Prozessen erstellen. Die Methode os.pipe() gibt zwei Dateideskriptoren zurück, einen zum Lesen von Pipe-Daten und einen zum Schreiben von Pipe-Daten.

21.os.wait(): Diese Methode kann auf das Ende des untergeordneten Prozesses warten und dann den Statuscode des untergeordneten Prozesses zurückgeben. Sie können die Methode os.waitpid(pid, options) verwenden, um auf das Ende des angegebenen Prozesses zu warten und den Statuscode des Prozesses zurückzugeben.

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。

Das obige ist der detaillierte Inhalt vonVerwendung des Betriebssystemmoduls von Python und Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen