Inhaltsverzeichnis
Python操作文件和目录
os模块
当前工作目录
绝对路径和相对路径
检查路径
创建文件夹
连接路径
遍历文件夹
删除文件/文件夹
重命名
获取文件的大小
shutil模块
copy
move
Heim Backend-Entwicklung Python-Tutorial Wie verwaltet Python Dateien und Verzeichnisse?

Wie verwaltet Python Dateien und Verzeichnisse?

Jun 27, 2017 am 09:55 AM
python 操作 文件 目录

Python操作文件和目录

读写文件比较简单,有一点特别注意就好了

windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱码。此时手动添加encoding='utf-8'表示以utf-8的方式打开。

当然Python写入时候,也是默认以gbk的编码写入。而文件通常是utf-8格式保存的,所以若不指定写入的编码方式,一写入中文就是乱码了

with open('abc.txt', encoding='utf-8') as f:print(f.read())  # 这样打开文件有中文也不怕# 当然Python写入时候,默认以gbk的编码写入。而文件是utf-8格式保存的,所以不指定写入的编码方式,一写入中文就是乱码了with open('abc.txt', 'w', encoding='utf-8') as f:
   f.write('你好')
Nach dem Login kopieren

好了进入正题

os模块

当前工作目录

下面的代码可获取/切换当前工作目录,也就是.代表的路径

import osprint(os.getcwd())  # F:\PythonProjectos.chdir(r'D:\python')print(os.getcwd())  # D:\pythonprint(os.path.abspath('.'))  # D:\python# 由于工作目录切换到D:\python,所以这个aa.txt就在其下生成with open('aa.txt', 'w', encoding='utf-8') as f:
    f.write('你好')
Nach dem Login kopieren

os.chdir可以切换当前的工作目录,也就是改变了.所指向的目录。于是相对路径aa.txt就在切换后的路径下生成。这两个路径表达同一个意思

  • aa.txt

  • .\aa.txt

还有两个点,表示当前目录的父目录。..\aa.txt这样就是D:\aa.txt的意思了。

绝对路径和相对路径

  • 绝对路径指的是从根文件夹子(盘符)开始

  • 相对路径是相对于当前工作目录

print(os.path.abspath('aa.txt'))  # D:\python\aa.txtprint(os.path.isabs('aa.txt'))  # Falseprint(os.path.isabs('.'))  #False
Nach dem Login kopieren

上面的代码,第一个函数返回参数路径的绝对路径,第二个函数用于检查一个路径是否是相对路径。

获取最后一个斜杠前后的路径。

# 获取最后一个斜杠后面的部分print(os.path.basename(r'D:\python\aa.txt')) # aa.txtprint(os.path.dirname(r'D:\python\aa.txt')) # D:\python# 当然使用下面的函数可以同时获得以上两者print(os.path.split(r'D:\python\aa.txt'))  # ('D:\\python', 'aa.txt')
Nach dem Login kopieren

以其他方式分割

print(os.path.splitext(r'D:\python\aa.txt')) # ('D:\\python\\aa', '.txt')print(os.path.splitdrive(r'D:\python\aa.txt')) # ('D:', '\\python\\aa.txt')
Nach dem Login kopieren

os.path.splitext这个函数以可以方便地获取文件后缀名,如果提供地路径是文件夹,那么返回空。

os.path.splitdrive以盘符作为分隔。

注意,它们都返回元组

检查路径

检查一个路径存不存在,是文件?还是文件夹?

print(os.path.isfile('D:\python')) # Falseprint(os.path.isdir('D:\python'))  # Trueprint(os.path.exists('D:\python'))  # True
Nach dem Login kopieren

创建文件夹

os.mkdir('D:\good') # True 只能建立一级不存在的目录,若已存在会报错os.mkdir('D:\good\job') # True 注释掉上一句,由于D:\good已经存在,这里相当于还是只新建了一级不存在的目录os.mkdir(r'D:\aa\bb') # 报错!!由于aa和bb文件夹都不存在,找不到D:\aa路径,故不能创建os.makedirs(r'D:\aa\bb')  # 此函数没有上上面的限制,管他存不存在一股脑儿创建,反正最后会生成此路径就是了。不过如果此路径已经存在了,就会报错了
Nach dem Login kopieren

由此可以看出os.makedirs更常用,可以创建处路径里所有的文件夹。而os.mkdir还必须保证上级目录存在,所以只能新建一级目录。

连接路径

print(os.path.join(r'D:\python', 'aa.txt')) # D:\python\aa.txt
Nach dem Login kopieren

这个函数也很常用,用于连接两个路径,组合成新路径返回。

遍历文件夹

# 返回元组,分别是当前文件夹路径, 当前路径下的子文件夹,当前路径下的文件for current_path, subfolders, filesname in os.walk(r'D:\Cleaner'):print(f'{current_path}\n{subfolders}\n{filesname}')print('-'*30)
Nach dem Login kopieren

os.walk可以递归遍历给定路径下所有地文件和文件夹。看下该目录下这个函数会打印什么。这个函数会返回一个元组,分别是(当前路径, 该路径下的所有文件夹, 该路径下的所有文件),然后不断递归深入,不断返回这样的元组。所以上面的for循环执行了多次,直到路径最深处。

D:\Cleaner
['CCleaner']
['desktop.ini']
------------------------------
D:\Cleaner\CCleaner
['Lang']
['branding.dll', 'business.dat', 'CCleaner.dat', 'CCleaner.exe', 'ccleaner.ini', 'CCleaner64.exe', 'portable.dat']
------------------------------
....
Nach dem Login kopieren

删除文件/文件夹

# 永久删除,不进入回收站os.remove(r'D:\aaaa.txt')  # same as os.unlink()# 目录为空才能删除, 只是删除当前文件夹os.rmdir(r'D:\aaa\bbb\ccc\eee')# 这个方法也不能删除非空目录,但是删除了空文件夹子eee后若发现父级文佳夹也空就一并删除os.removedirs(r'D:\aaa\bbb\ccc\eee')  # 剩下D:\aaa\bbb# 强力,该目录下所有文件/文件夹全部删除,不管内容空不空。慎用shutil.rmtree(r'D:\aaa')
Nach dem Login kopieren

重命名

# 重命名文件夹,必须保证原路径存在,目标路径不能已存在os.rename(r'D:\python', 'D:\good')# 重命名文件,必须保证原路径存在,目标路径不能已存在os.rename(r'D:\good\aa.txt', r'D:\good\bb.txt')# 上面都不能再目标地址存在的情况下使用,这个函数粗暴,如果目标路径已存在,则会覆盖之,慎用os.replace(r'D:\good\bb.txt', r'D:\good\cc.txt')
Nach dem Login kopieren

获取文件的大小

得到文件的大小,以字节为单位

print(os.path.getsize(r'D:\good\cc.txt'))
Nach dem Login kopieren

shutil模块

os模块的功能相当强大,但是还有部分功能,比如复制/剪切文件和文件夹存在与shutil模块中。

直接看代码吧

copy

# 如果Movie目录存在,则是把这个文件复制到了该目录下。des1 = shutil.copy(r'D:\findall.txt', r'E:\Movie')# 如果没有该目录,则新建Mov文件,无后缀名des2= shutil.copy(r'D:\findall.txt', r'E:\Mov')# 当然指定了后缀名,就把源文件复制过去并重命名des2= shutil.copy(r'D:\findall.txt', r'E:\Mov.txt')# copy只复制最后访问时间des3 = shutil.copy(r'D:\findall.txt', r'E:\findit.txt')# copy2同时拷贝所有元数据包括修改时间和最后访问时间des4 = shutil.copy2(r'D:\findall.txt', r'E:\find.txt')# 不拷贝访问时间和修改时间des5 = shutil.copyfile(r'D:\findall.txt', r'E:\findaa.txt')# 可以看到返回的是新文件所在的路径print(f'{des1}\n{des2}\n{des3}')# 拷贝整个文件夹(里面所有内容)到另外一个文件夹,该文件夹不能是已经存在的文件夹shutil.copytree(r'D:\abc', r'E:\Movie')
Nach dem Login kopieren

move

# 剪切文件, abc不存在就移动文件并改名为abc, abc目录存在则放入该目录shutil.move(r'D:\findall.txt', r'E:\abc')# 目标地址若是文件,则是移动并重命名shutil.move(r'D:\findall.txt', r'E:\aa.txt')# 剪切文件夹,如果目标目录已经存在,则剪切并放入该目录,如果目标目录不存在,则相当于移动目录到目标地址并重命名文件夹shutil.move(r'D:\abc', r'E:\avb')
Nach dem Login kopieren

ok,对文件和目录的操作也是日常生活中经常会使用到的。学习了这些已经可以自动完成很多操作了。


by @sunhaiyu

2017.6.26

Das obige ist der detaillierte Inhalt vonWie verwaltet Python Dateien und Verzeichnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

Was ist der Prozess des Konvertierens von XML in Bilder? Was ist der Prozess des Konvertierens von XML in Bilder? Apr 02, 2025 pm 08:24 PM

Um XML -Bilder zu konvertieren, müssen Sie zuerst die XML -Datenstruktur ermitteln, dann eine geeignete grafische Bibliothek (z. B. Pythons Matplotlib) und eine Methode auswählen, eine Visualisierungsstrategie basierend auf der Datenstruktur auswählen, das Datenvolumen und das Bildformat, die Batch -Verarbeitung ausführen oder effiziente Bibliotheken verwenden und schließlich als PNG, JPEG oder SVG nach den Bedürfnissen speichern.

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 09:45 PM

Es gibt keine App, die alle XML -Dateien in PDFs umwandeln kann, da die XML -Struktur flexibel und vielfältig ist. Der Kern von XML zu PDF besteht darin, die Datenstruktur in ein Seitenlayout umzuwandeln, für das XML analysiert und PDF generiert werden muss. Zu den allgemeinen Methoden gehören das Parsen von XML mithilfe von Python -Bibliotheken wie ElementTree und das Generieren von PDFs unter Verwendung der ReportLab -Bibliothek. Für komplexe XML kann es erforderlich sein, XSLT -Transformationsstrukturen zu verwenden. Wenn Sie die Leistung optimieren, sollten Sie Multithread- oder Multiprozesse verwenden und die entsprechende Bibliothek auswählen.

So verschönern Sie das XML -Format So verschönern Sie das XML -Format Apr 02, 2025 pm 09:57 PM

Die XML -Verschönerung verbessert im Wesentlichen seine Lesbarkeit, einschließlich angemessener Einkerbung, Zeilenpausen und Tag -Organisation. Das Prinzip besteht darin, den XML -Baum zu durchqueren, die Eindrücke entsprechend der Ebene hinzuzufügen und leere Tags und Tags, die Text enthalten, zu verarbeiten. Pythons xml.etree.elementtree -Bibliothek bietet eine bequeme Funktion hübsch_xml (), die den oben genannten Verschönerungsprozess implementieren kann.

Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Apr 02, 2025 pm 10:09 PM

Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

So öffnen Sie das XML -Format So öffnen Sie das XML -Format Apr 02, 2025 pm 09:00 PM

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Apr 02, 2025 pm 10:12 PM

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Gibt es ein kostenloses XML -zu -PDF -Tool für Mobiltelefone? Gibt es ein kostenloses XML -zu -PDF -Tool für Mobiltelefone? Apr 02, 2025 pm 09:12 PM

Es gibt kein einfaches und direktes kostenloses XML -zu -PDF -Tool auf Mobilgeräten. Der erforderliche Datenvisualisierungsprozess beinhaltet komplexes Datenverständnis und Rendering, und die meisten sogenannten "freien" Tools auf dem Markt haben schlechte Erfahrung. Es wird empfohlen, Computer-Seiten-Tools zu verwenden oder Cloud-Dienste zu verwenden oder Apps selbst zu entwickeln, um zuverlässigere Conversion-Effekte zu erhalten.

See all articles