Heim Backend-Entwicklung Python-Tutorial 跟老齐学Python之折腾一下目录

跟老齐学Python之折腾一下目录

Jun 10, 2016 pm 03:19 PM
目录

python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多,有兴趣的看官可以参考官方文档:https://docs.python.org/2/library/os.html,或者在交互模式中,用dir(os)看一看。

复制代码 代码如下:

>>> import os   #这个动作很重要,不能缺少
>>> dir(os)
['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE', 'EX_PROTOCOL', 'EX_SOFTWARE', 'EX_TEMPFAIL', 'EX_UNAVAILABLE', 'EX_USAGE', 'F_OK', 'NGROUPS_MAX', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_DIRECT', 'O_DIRECTORY', 'O_DSYNC', 'O_EXCL', 'O_LARGEFILE', 'O_NDELAY', 'O_NOATIME', 'O_NOCTTY', 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_RSYNC', 'O_SYNC', 'O_TRUNC', 'O_WRONLY', 'P_NOWAIT', 'P_NOWAITO', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'UserDict', 'WCONTINUED', 'WCOREDUMP', 'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED', 'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', '_spawnvef', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close', 'closerange', 'confstr', 'confstr_names', 'ctermid', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fchdir', 'fchmod', 'fchown', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate', 'getcwd', 'getcwdu', 'getegid', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getloadavg', 'getlogin', 'getpgid', 'getpgrp', 'getpid', 'getppid', 'getresgid', 'getresuid', 'getsid', 'getuid', 'initgroups', 'isatty', 'kill', 'killpg', 'lchown', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'major', 'makedev', 'makedirs', 'minor', 'mkdir', 'mkfifo', 'mknod', 'name', 'nice', 'open', 'openpty', 'pardir', 'path', 'pathconf', 'pathconf_names', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'setegid', 'seteuid', 'setgid', 'setgroups', 'setpgid', 'setpgrp', 'setregid', 'setresgid', 'setresuid', 'setreuid', 'setsid', 'setuid', 'spawnl', 'spawnle', 'spawnlp', 'spawnlpe', 'spawnv', 'spawnve', 'spawnvp', 'spawnvpe', 'stat', 'stat_float_times', 'stat_result', 'statvfs', 'statvfs_result', 'strerror', 'symlink', 'sys', 'sysconf', 'sysconf_names', 'system', 'tcgetpgrp', 'tcsetpgrp', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'ttyname', 'umask', 'uname', 'unlink', 'unsetenv', 'urandom', 'utime', 'wait', 'wait3', 'wait4', 'waitpid', 'walk', 'write']

在这么多的东西中,本讲只关注os.path,真所谓“弱水三千,只取一瓢”,为什么这么偏爱它呢?因为它和前面已经讲过的文件操作进行配合,就能够随心所欲操作各个地方的文件了(关于文件,请参考:不要红头文件(1)、不要红头文件(2))

关于os.path的属性也不少,依然可以用dir(os.path)查看:

复制代码 代码如下:

>>> dir(os.path)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_joinrealpath', '_unicode', '_varprog', 'abspath', 'altsep', 'basename', 'commonprefix', 'curdir', 'defpath', 'devnull', 'dirname', 'exists', 'expanduser', 'expandvars', 'extsep', 'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 'isabs', 'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 'normcase', 'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath', 'samefile', 'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 'splitext', 'stat', 'supports_unicode_filenames', 'sys', 'walk', 'warnings']

这么多属性,看官可以用help()逐个查看有关信息,并了解其使用方法。下面列出常见的几个使用方法,为看官减轻一点阅读英文的障碍,不过,如果看官英语足够好,请直接看原文档。就像这样:

复制代码 代码如下:

>>> help(os.path.split)

split(p)
    Split a pathname.  Returns tuple "(head, tail)" where "tail" is
    everything after the final slash.  Either part may be empty.

以下将一些典型举例说明:

特别说明,下面的所有操作,均是进入到如下的目录中进行的。

复制代码 代码如下:

qw@qw-Latitude-E4300:~/Documents/ITArticles/BasicPython/codes$ pwd
/home/qw/Documents/ITArticles/BasicPython/codes         #当前目录

qw@qw-Latitude-E4300:~/Documents/ITArticles/BasicPython/codes$ python

Python 2.7.6 (default, Nov 13 2013, 19:24:16)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

文件的绝对路径

复制代码 代码如下:

>>> import os.path
>>> os.path.abspath("225.py")
'/home/qw/Documents/ITArticles/BasicPython/codes/225.py'

文件 225.py 是真实存在上述路径中的,得到了该文件的绝对路径。但是,如果随便提供一个不在这个目录中的文件,又如何?

复制代码 代码如下:

>>> os.path.isfile("225.py")
True

>>> os.path.isfile("2222.py")
False
>>> os.path.abspath("2222.py")
'/home/qw/Documents/ITArticles/BasicPython/codes/2222.py'

os.path.isfile(path),可以判断path中是否是文件,其实是判断在该路径中,是否存在那个文件,如果存在则返回True,否则False。上面的操作发现 2222.py 这个文件在当前目录下是不存在的,但是,用os.path.abspaht("2222.py")能够返回一个绝对路径并带有这个不存在的文件的文件名。这里不妨理解为,如果要建立这个文件,它即将被放在那个位置。

按照这样理解,还可:

复制代码 代码如下:

>>> os.path.abspath("/home/qw/kkkkkkkk.kk")
'/home/qw/kkkkkkkk.kk'

分开目录和文件名

复制代码 代码如下:

>>> pn = os.path.abspath("225.py")
>>> pn
'/home/qw/Documents/ITArticles/BasicPython/codes/225.py'

>>> os.path.split(pn)
('/home/qw/Documents/ITArticles/BasicPython/codes', '225.py')
>>> path, filename = os.path.split(pn)[0], os.path.split(pn)[1]
>>> path
'/home/qw/Documents/ITArticles/BasicPython/codes'
>>> filename
'225.py'

os.paht.split(),参数是目录加文件名,就可以将路径和文件名分开。其实,我看这个功能不是很智能,你看这样

复制代码 代码如下:

>>> os.path.split("/home/qw")
('/home', 'qw')

>>> os.path.split("/home/qw/")
('/home/qw', '')

它就是将最后一组认为是文件名了,即最后一个/后面的就是文件名,所以第二个实验中,文件名是空了。是不是有点傻呢?

同样,参数中的文件或者目录,不一定是你的电脑中真实存在的,请看:

复制代码 代码如下:

>>> os.path.split("/foo/python/qiwsir/git.git")
('/foo/python/qiwsir', 'git.git')

只要符合目录书写结构,就可以分解了。

有另外两个属性,是os.path.split()的分别执行,即可以分别获得路径和文件名,这样让操作更简单了。

复制代码 代码如下:

>>> os.path.dirname("/foo/python/qiwsir/git.git")
'/foo/python/qiwsir'
>>> os.path.basename("foo/python/qiwsir/git.git")
'git.git'

判断

前面稍微提到了os.path.isfile()可以用来判断一个文件是否存在,那么判断目录路径是否存在,可否?可:

复制代码 代码如下:

>>> os.path.exists("/foo/python/qiwsir") 
False
>>> os.path.exists("/home/qw/Documents")
True

判断相关的属性还有:

os.path.isabs(path):判断path是否为绝对路径
os.paht.isdir(path):判断path是否为存在的目录
组合路径

将两个或多个对象组合起来,是常见的事情,那么如何将多个路径组合呢?如下:

复制代码 代码如下:

>>> os.path.join("/home/python","/BasicsPython","226.md")
'/BasicsPython/226.md'

特别提醒,这个属性的返回值中,将第一个绝对路径忽略。

复制代码 代码如下:

>>> os.path.join("/","/home/qw","learnpython.md")
'/home/qw/learnpython.md'

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

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

So fügen Sie ein Inhaltsverzeichnis in Google Docs ein So fügen Sie ein Inhaltsverzeichnis in Google Docs ein Apr 13, 2023 pm 08:16 PM

Ganz gleich, ob es sich um einen Artikel, eine Arbeit oder ein Tutorial handelt, das wichtigste Highlight eines jeden Dokuments ist der Titel und natürlich das Inhaltsverzeichnis. Es beschreibt die Gliederungsstruktur des Dokuments, damit Benutzer herausfinden können, wo und was sie im Dokument lesen möchten. Es empfiehlt sich außerdem, den meisten Dokumenten ein Inhaltsverzeichnis hinzuzufügen, damit sie professioneller aussehen. Heutzutage geschieht alles online und die meisten Dokumente werden mit Google Docs erstellt. Viele Nutzer sind sich immer noch nicht sicher, wie sie ein Inhaltsverzeichnis in Google Docs einfügen oder hinzufügen. Aus diesem Grund haben wir diesen Artikel erstellt, um zu erklären, wie Sie ein Inhaltsverzeichnis in Google Docs erstellen oder einfügen. So fügen Sie ein Inhaltsverzeichnis in Google Docs ein. Schritt 1: Klicken Sie hier, um Google Docs Online zu besuchen. Schritt 2: Wenn

Verwenden Sie die Funktion File.isDirectory() von Java, um festzustellen, ob die Datei vorhanden ist und ein Verzeichnistyp ist Verwenden Sie die Funktion File.isDirectory() von Java, um festzustellen, ob die Datei vorhanden ist und ein Verzeichnistyp ist Jul 24, 2023 pm 06:57 PM

Verwenden Sie die Funktion File.isDirectory() von Java, um festzustellen, ob eine Datei vorhanden ist und einen Verzeichnistyp hat. Bei der Java-Programmierung kommt es häufig vor, dass Sie feststellen müssen, ob eine Datei vorhanden ist und einen Verzeichnistyp hat. Java stellt die File-Klasse zum Betreiben von Dateien und Verzeichnissen bereit. Die Funktion isDirectory() kann uns dabei helfen, festzustellen, ob eine Datei ein Verzeichnistyp ist. Die Funktion File.isDirectory() ist eine Methode in der File-Klasse. Ihre Funktion besteht darin, die aktuelle Datei zu ermitteln

Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet Nov 18, 2023 pm 06:17 PM

Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet und ist eine leistungsstarke Dateioperationsfunktion. Es kann den Pfad einer Datei oder eines Verzeichnisses basierend auf einer angegebenen Musterübereinstimmung zurückgeben. Die Syntax der glob()-Funktion lautet wie folgt: glob(pattern, flags) wobei „pattern“ die abzugleichende Musterzeichenfolge darstellt, die ein Platzhalterausdruck sein kann, z. B. *.txt (übereinstimmende Dateien mit der Endung .txt) oder einen bestimmten Dateipfad. Flags ist ein optionaler Parameter, der zur Steuerung der Funktion verwendet wird

Einführung in die PHP-Funktion – rename(): Benennen Sie eine Datei oder ein Verzeichnis um Einführung in die PHP-Funktion – rename(): Benennen Sie eine Datei oder ein Verzeichnis um Jul 25, 2023 pm 12:10 PM

Einführung in die PHP-Funktion – rename(): Umbenennen von Dateien oder Verzeichnissen Einführung: In PHP wird die Funktion rename() zum Umbenennen von Dateien oder Verzeichnissen verwendet. Es bietet eine einfache Möglichkeit, den Namen einer Datei oder eines Verzeichnisses zu ändern. Egal, ob es sich um eine einzelne Datei oder ein ganzes Verzeichnis handelt, mit dieser Funktion können Sie es umbenennen. Der Umbenennungsvorgang kann einfach durchgeführt werden, indem der Name der Quelldatei oder des Quellverzeichnisses und der Zielname angegeben werden. Syntax: boolrename(string$source,str

So überprüfen Sie, ob ein Verzeichnis unter Linux leer ist So überprüfen Sie, ob ein Verzeichnis unter Linux leer ist Mar 20, 2023 am 10:17 AM

So prüfen Sie, ob das Verzeichnis unter Linux leer ist: 1. Geben Sie das Linux-Terminal ein; 2. Führen Sie „res=`ls -A $dir` if [ -z $res ]; then echo „$dir ..."else echo aus Die Methode „$ Die dir...fi“ kann feststellen, ob das Verzeichnis leer ist.

So erstellen Sie automatisch ein Verzeichnis. So legen Sie das Format des automatisch generierten Verzeichnisses fest. So erstellen Sie automatisch ein Verzeichnis. So legen Sie das Format des automatisch generierten Verzeichnisses fest. Feb 22, 2024 pm 03:30 PM

Wählen Sie den Stil des Katalogs in Word aus. Dieser wird nach Abschluss des Vorgangs automatisch generiert. Analyse 1. Gehen Sie auf Ihrem Computer zu Word und klicken Sie auf „Importieren“. 2Klicken Sie nach der Eingabe auf das Dateiverzeichnis. 3 Wählen Sie dann den Stil des Verzeichnisses aus. 4. Nach Abschluss des Vorgangs können Sie sehen, dass das Dateiverzeichnis automatisch generiert wird. Ergänzung: Das Inhaltsverzeichnis des Zusammenfassungs-/Notizartikels wird automatisch generiert, einschließlich Überschriften der ersten Ebene, Überschriften der zweiten Ebene und Überschriften der dritten Ebene, normalerweise nicht mehr als Überschriften der dritten Ebene.

Verwenden Sie die Funktion path/filepath.Split, um den Pfad in Verzeichnis- und Dateinamenteile aufzuteilen Verwenden Sie die Funktion path/filepath.Split, um den Pfad in Verzeichnis- und Dateinamenteile aufzuteilen Jul 25, 2023 pm 05:57 PM

Verwenden Sie die Funktion path/filepath.Split, um den Pfad in zwei Teile aufzuteilen: Verzeichnis und Dateiname. Bei der Entwicklung von Programmen oder der Verarbeitung von Dateien ist es häufig erforderlich, den Pfad in zwei Teile aufzuteilen: Verzeichnis und Dateiname. In der Go-Sprache können Sie die Split-Funktion im Pfad-/Dateipfad-Paket verwenden, um diese Funktion zu erreichen. In diesem Artikel wird die Verwendung der Split-Funktion vorgestellt und Codebeispiele gegeben. Die Split-Funktion ist wie folgt definiert: funcSplit(pathstring)(di

So lesen Sie den Katalog beim Lesen auf WeChat. So zeigen Sie den Katalog an So lesen Sie den Katalog beim Lesen auf WeChat. So zeigen Sie den Katalog an Mar 30, 2024 pm 05:56 PM

Die mobile Version der WeChat-Lese-App ist eine sehr gute Lesesoftware. Sie können sie jederzeit und überall mit nur einem Klick lesen und online lesen Sortieren Sie Ihre Bücher ordentlich und genießen Sie eine angenehme und entspannte Leseatmosphäre. Wechseln Sie den Lesemodus verschiedener Szenarien, aktualisieren Sie jeden Tag kontinuierlich die neuesten Buchkapitel, unterstützen Sie die Online-Anmeldung von mehreren Geräten und laden Sie sie stapelweise in das Bücherregal herunter. Sie können es mit oder ohne Internet lesen, sodass jeder mehr Wissen daraus entdecken kann Jetzt erläutert der Herausgeber online die Methode zum Anzeigen des Katalogs für WeChat-Lesepartner. 1. Öffnen Sie das Buch, dessen Katalog Sie ansehen möchten, und klicken Sie in die Mitte des Buchs. 2. Klicken Sie auf das Symbol mit den drei Linien in der unteren linken Ecke. 3. Sehen Sie sich im Popup-Fenster den Buchkatalog an

See all articles