最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

跟老齊學(xué)Python之折騰一下目錄

 更新時(shí)間:2014年10月24日 14:27:33   投稿:hebedich  
本講只關(guān)注os.path,真所謂“弱水三千,只取一瓢”,為什么這么偏愛(ài)它呢?因?yàn)樗颓懊嬉呀?jīng)講過(guò)的文件操作進(jìn)行配合,就能夠隨心所欲操作各個(gè)地方的文件了

python在安裝的時(shí)候,就自帶了很多模塊,我們把這些模塊稱之為標(biāo)準(zhǔn)庫(kù),其中,有一個(gè)是使用頻率比較高的,就是 os 。這個(gè)庫(kù)中方法和屬性眾多,有興趣的看官可以參考官方文檔:https://docs.python.org/2/library/os.html,或者在交互模式中,用dir(os)看一看。

復(fù)制代碼 代碼如下:

>>> import os   #這個(gè)動(dòng)作很重要,不能缺少
>>> 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']

在這么多的東西中,本講只關(guān)注os.path,真所謂“弱水三千,只取一瓢”,為什么這么偏愛(ài)它呢?因?yàn)樗颓懊嬉呀?jīng)講過(guò)的文件操作進(jìn)行配合,就能夠隨心所欲操作各個(gè)地方的文件了(關(guān)于文件,請(qǐng)參考:不要紅頭文件(1)、不要紅頭文件(2))

關(guān)于os.path的屬性也不少,依然可以用dir(os.path)查看:

復(fù)制代碼 代碼如下:

>>> 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()逐個(gè)查看有關(guān)信息,并了解其使用方法。下面列出常見(jiàn)的幾個(gè)使用方法,為看官減輕一點(diǎn)閱讀英文的障礙,不過(guò),如果看官英語(yǔ)足夠好,請(qǐng)直接看原文檔。就像這樣:

復(fù)制代碼 代碼如下:

>>> 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.

以下將一些典型舉例說(shuō)明:

特別說(shuō)明,下面的所有操作,均是進(jìn)入到如下的目錄中進(jìn)行的。

復(fù)制代碼 代碼如下:

qw@qw-Latitude-E4300:~/Documents/ITArticles/BasicPython/codes$ pwd
/home/qw/Documents/ITArticles/BasicPython/codes         #當(dāng)前目錄

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.
>>>

文件的絕對(duì)路徑

復(fù)制代碼 代碼如下:

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

文件 225.py 是真實(shí)存在上述路徑中的,得到了該文件的絕對(duì)路徑。但是,如果隨便提供一個(gè)不在這個(gè)目錄中的文件,又如何?

復(fù)制代碼 代碼如下:

>>> 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中是否是文件,其實(shí)是判斷在該路徑中,是否存在那個(gè)文件,如果存在則返回True,否則False。上面的操作發(fā)現(xiàn) 2222.py 這個(gè)文件在當(dāng)前目錄下是不存在的,但是,用os.path.abspaht("2222.py")能夠返回一個(gè)絕對(duì)路徑并帶有這個(gè)不存在的文件的文件名。這里不妨理解為,如果要建立這個(gè)文件,它即將被放在那個(gè)位置。

按照這樣理解,還可:

復(fù)制代碼 代碼如下:

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

分開(kāi)目錄和文件名

復(fù)制代碼 代碼如下:

>>> 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(),參數(shù)是目錄加文件名,就可以將路徑和文件名分開(kāi)。其實(shí),我看這個(gè)功能不是很智能,你看這樣

復(fù)制代碼 代碼如下:

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

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

它就是將最后一組認(rèn)為是文件名了,即最后一個(gè)/后面的就是文件名,所以第二個(gè)實(shí)驗(yàn)中,文件名是空了。是不是有點(diǎn)傻呢?

同樣,參數(shù)中的文件或者目錄,不一定是你的電腦中真實(shí)存在的,請(qǐng)看:

復(fù)制代碼 代碼如下:

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

只要符合目錄書寫結(jié)構(gòu),就可以分解了。

有另外兩個(gè)屬性,是os.path.split()的分別執(zhí)行,即可以分別獲得路徑和文件名,這樣讓操作更簡(jiǎn)單了。

復(fù)制代碼 代碼如下:

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

判斷

前面稍微提到了os.path.isfile()可以用來(lái)判斷一個(gè)文件是否存在,那么判斷目錄路徑是否存在,可否?可:

復(fù)制代碼 代碼如下:

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

判斷相關(guān)的屬性還有:

os.path.isabs(path):判斷path是否為絕對(duì)路徑
os.paht.isdir(path):判斷path是否為存在的目錄
組合路徑

將兩個(gè)或多個(gè)對(duì)象組合起來(lái),是常見(jiàn)的事情,那么如何將多個(gè)路徑組合呢?如下:

復(fù)制代碼 代碼如下:

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

特別提醒,這個(gè)屬性的返回值中,將第一個(gè)絕對(duì)路徑忽略。

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • Python之列表推導(dǎo)式最全匯總(下篇)

    Python之列表推導(dǎo)式最全匯總(下篇)

    這篇文章主要介紹了Python之列表推導(dǎo)式最全匯總(下篇),本文章內(nèi)容詳細(xì),通過(guò)案例可以更好的理解列表推導(dǎo)式的相關(guān)知識(shí),本模塊分為了三部分,本次為下篇,需要的朋友可以參考下
    2023-01-01
  • python如何通過(guò)跳板機(jī)連接MySQL

    python如何通過(guò)跳板機(jī)連接MySQL

    這篇文章主要介紹了python如何通過(guò)跳板機(jī)連接MySQL問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python爬蟲基礎(chǔ)之初次使用scrapy爬蟲實(shí)例

    Python爬蟲基礎(chǔ)之初次使用scrapy爬蟲實(shí)例

    今天給大家?guī)?lái)的是關(guān)于Python爬蟲的相關(guān)知識(shí),文章圍繞著Python scrapy展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python3庫(kù)numpy數(shù)組屬性的查看方法

    python3庫(kù)numpy數(shù)組屬性的查看方法

    下面小編就為大家分享一篇python3庫(kù)numpy數(shù)組屬性的查看方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python箱型圖繪制與特征值獲取過(guò)程解析

    Python箱型圖繪制與特征值獲取過(guò)程解析

    這篇文章主要介紹了Python箱型圖繪制與特征值獲取過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python文件夾批處理操作代碼實(shí)例

    Python文件夾批處理操作代碼實(shí)例

    這篇文章主要介紹了Python文件夾批處理操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎

    基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎

    這篇文章主要介紹了基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎,文中代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • TensorFlow索引與切片的實(shí)現(xiàn)方法

    TensorFlow索引與切片的實(shí)現(xiàn)方法

    這篇文章主要介紹了TensorFlow索引與切片的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)

    PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)

    在PyTorch中,flatten函數(shù)的作用是將一個(gè)多維的張量轉(zhuǎn)換為一維的向量,它可以將任意形狀的張量轉(zhuǎn)換為一維,而不需要指定轉(zhuǎn)換后的大小,這篇文章主要介紹了PyTorch中flatten()?函數(shù)的用法,需要的朋友可以參考下
    2023-11-11
  • python 實(shí)現(xiàn)交換兩個(gè)列表元素的位置示例

    python 實(shí)現(xiàn)交換兩個(gè)列表元素的位置示例

    今天小編就為大家分享一篇python 實(shí)現(xiàn)交換兩個(gè)列表元素的位置示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論

安义县| 兴安县| 潮安县| 晋州市| 潜江市| 清水河县| 清涧县| 马关县| 黎城县| 怀远县| 吴旗县| 汤阴县| 化德县| 会昌县| 勐海县| 峨眉山市| 南靖县| 株洲县| 临沧市| 阿图什市| 屏边| 北宁市| 和顺县| 淳安县| 民和| 云阳县| 奉化市| 丹凤县| 政和县| 贵南县| 丰城市| 垫江县| 凌源市| 郧西县| 潼关县| 宜城市| 噶尔县| 鄯善县| 苗栗县| 积石山| 博乐市|