Artikelverzeichnis
shutil
-Module sind die Hauptmethoden für Python, mit Dateien/Verzeichnissen umzugehen. Das OS-Modul bietet eine bequeme Möglichkeit, betriebssystembezogene Funktionen zu nutzen, und das Shutil-Modul ist ein erweitertes Datei-/Verzeichnis-Betriebstool.os
-Modul bietet einige praktische Funktionen zur Verwendung von Betriebssystemressourcen, z. B. das Lesen von Dateien im Ressourcenverzeichnis und das Anzeigen von Dateien unter einem bestimmten Pfad in der Befehlszeile. Alle Inhalte usw.
Bei der Entwicklung von Kompatibilitätscode zur Anpassung an verschiedene Betriebssysteme kann dies leicht durch die Beurteilung des Betriebssystemtyps gelöst werden.
os
模块和shutil
模块是Python处理文件/目录的主要方式。os模块提供了一种使用操作系统相关功能的便捷方式,shutil模块是一种高级的文件/目录操作工具。
文件的处理
os
模块提供了一些便捷功能来使用操作系统资源,比如读取资源目录下的文件、在命令行查看某路径下文件的所有内容等。
获取系统类型
对代码进行兼容性开发以适应不同操作系统时通过操作系统类型进行判断就可以轻松解决。
import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))
获取系统环境
对环境变量进行相关设置时,常常会调用模块environ
模块。os.environ
是以字典的形式返回系统环境变量,要获取具体的属性值,可以用索引,也可以用方法getenv()
:
import os os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()
执行系统命令
使用os模块system()
方法可以执行shell命令,正常执行会返回0。使用格式是os.system("bash command")
。
在非控制台编写时,system()
只会调用系统命令而不会执行,执行结果可通过popen()
函数返回file
Holen Sie sich das System Umgebung
environ
aufgerufen.
os.environ
gibt Systemumgebungsvariablen in Form eines Wörterbuchs zurück. Um bestimmte Attributwerte zu erhalten, können Sie den Index oder die Methode
getenv()
verwenden:
import shutil path_1 = r'D:\PycharmProjects\Hello'path_2 = r'D:\PycharmProjects\Hello\shutil-test'new_path = shutil.make_archive(path_2,'zip',path_1)print(new_path)
system()
des Betriebssystems, um Shell-Befehle auszuführen. Bei normaler Ausführung wird 0 zurückgegeben. Das Verwendungsformat ist
os.system("bash command")
. Beim Schreiben ohne Konsole ruft
system()
nur Systembefehle auf, führt sie jedoch nicht aus. Die Ausführungsergebnisse können über
popen() an file-Funktion. /code>-Objekt wird gelesen und abgerufen. import shutilimport os shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\testdir')print(os.listdir('D:\testdir'))
Nach dem Login kopierenBetreiben von Verzeichnissen und DateienEine der häufigsten Funktionen in der Python-Entwicklung ist die Verwendung des Betriebssystemmoduls zum Betreiben von Verzeichnissen und Dateien. Methode Erklärung Beispiel os.getcwd() Den aktuellen Verzeichnispfad abrufen os.chdir('Zielpfad') Ändern Sie die aktuelle Skripttabelle des Inhalts os.listdir(path) Alle Dateien im Verzeichnis auflisten os.mkdir(path) Ein einzelnes Verzeichnis erstellen os .makedirs (Pfad) Mehrstufige Verzeichnisse erstellen os.rmdir(Pfad) Einstufige leere Verzeichnisse entfernen os.removedirs(pfad) Mehrstufige Verzeichnisse löschen os.rename("Datei- oder Verzeichnisname","Zielname") Ein Verzeichnis oder eine Datei umbenennen os.path.abspath() Den absoluten Pfad abrufen os.path.split(path) Zerlegen Sie den Pfad in (Ordner, Dateiname)
Wenn das letzte Zeichen der Pfadzeichenfolge ist, dann hat nur der Ordnerteil einen Wert;
Wenn es keinen in der Pfadzeichenfolge gibt , nur der Dateinamensteil hat einen Wert;
Wenn der Pfad die Zeichenfolge hat und nicht mehr der letzte ist, dann haben die Ordner- und Dateinamen Werte. + os.path.basename(path) Den Dateinamen im Pfad abrufen os.path.exists(path) Bestimmen Sie, ob die Datei oder der Ordner existiert os.path.isfile ( path) Bestimmen Sie, ob der Pfad eine Datei ist os.path.isdir(path) Bestimmen Sie, ob der Pfad ein Verzeichnis ist os.path.getsize(path ). oder Zeitpunkt des letzten Zugriffs auf den Ordner os.path.getmtime(path) Erhalten Sie die letzte Änderungszeit einer Datei oder eines Ordners os.sep() Pfadtrennzeichen ?? (插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/
文件和目录高级处理
相比os
模块,
shutil
模块用于文件和目录的高级处理,提供了支持文件赋值、移动、删除、压缩和解压等功能。
复制文件
shutil
模块的主要作用是赋值文件,大概有以下七种实现:
shutil.copyfileobj(file1,file2)
覆盖复制
将file1的内容覆盖file2,file1、file2表示打开的文件对象。
shutil.copyfile(file1,file2)
覆盖复制
也是覆盖,但是无须打开文件,直接用文件名进行覆盖(其源码还是调用的copyfileobj)。
shutil.copymode(file1,file2)
权限复制
仅复制文件权限,不更改文件内容、组和用户,无返回对象。
shutil.copystart(file1,file2)
状态复制
复制文件的所有状态信息,包括权限、组、用户和时间等,无返回对象。
shutil.copy(file1,file2)
内容和权限复制
复制文件的内容和权限,相当于先执行了copyfile再执行了copysmode。
shutil.copy2(file1,file2)
内容和权限复制
复制文件的内容及所有状态信息,相当于先执行了copyfile再执行了copystart。
shutil.copytree()
递归复制
递归地复制文件内容及状态信息
移动文件
使用函数shutil.move()
函数可以递归地移动文件或重命名,并返回目标,若目标是现有目录则src再当前目录移动;若目标已经存在且不是目录,则可能会被覆盖。
读取压缩及归档压缩文件
使用函数shutil.make_archive()
创建归档文件,并返回归档后的名称。
语法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])
- base_name为需要创建的文件名,包括路径
- format表示压缩格式,可选zip、tar或bztar等
- root_dir为归档的目录
import shutil path_1 = r'D:\PycharmProjects\Hello'path_2 = r'D:\PycharmProjects\Hello\shutil-test'new_path = shutil.make_archive(path_2,'zip',path_1)print(new_path)
Nach dem Login kopieren
Nach dem Login kopieren
解压文件
使用函数shutil.unpack_archive(filename[,extract_dir[,format]])
分析拆档。
- filename是归档的完整路径
- extract_dir是解压归档的目标目录名称
- format是解压文件的格式
import shutilimport os shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\\testdir')print(os.listdir('D:\\testdir'))
Nach dem Login kopieren
小结
需要注意的是不同的操作系统中,路径分隔符不一样,在文件处理时需要考虑。也可以使用os.sep()
来替代文件分隔符,因为操作系统而造成的程序异常。此外处理文件时往往需要注意文件权限,还有注意文件和文件夹的区别,使用递归等。
Python系列博客持续更新中
大量免费学习推荐,敬请访问python教程(视频)
Das obige ist der detaillierte Inhalt vonPython erklärt das OS-Modul und das Shutil-Modul ausführlich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Vorheriger Artikel:Wie man PyCharm chinesisch macht
Nächster Artikel:So ermitteln Sie in Python, ob eine Zeichenfolge eine Ganzzahl ist
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
2023-04-09 22:44:01
-
2021-05-21 15:21:45
-
2023-04-09 22:42:01
-
2023-03-09 12:50:01
-
2023-01-05 16:13:24
-
2023-01-05 16:13:23
-
2021-04-30 16:46:04
-
2023-01-05 16:13:23
-
2023-01-05 16:13:22
-
2021-04-30 16:27:19
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
-
零基础入门Python项目实战
104869
-
Python教程之开发跨平台的记事本视频教程
23230
-
python开发单词查询系统
19433
-
Über uns
Haftungsausschluss
Sitemap
-
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!