在操作文件的時候,我們肯定是要使用到 os 模塊的,但是 os 模塊里面還有 path 模塊,這個模塊主要是用來獲取文件的屬性的。這篇博客來分享一下 path 模塊的函數(shù),希望對學習 Python 的小伙伴有所幫助。
創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為巴東企業(yè)提供專業(yè)的做網站、成都網站制作,巴東網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
返回絕對路徑:
返回文件名:
返回list(多個路徑)中,所有path共有的最長的路徑:
返回文件路徑:
路徑存在則返回True,路徑損壞返回False:
路徑存在則返回True,路徑損壞也返回True:
把path中包含的" "和" user"轉換成用戶目錄:
根據(jù)環(huán)境變量的值替換path中包含的" {name}":
返回最近訪問時間(浮點型秒數(shù)):
返回最近文件修改時間:
返回文件 path 創(chuàng)建時間:
返回文件大小,如果文件不存在就返回錯誤:
判斷是否為絕對路徑:
判斷路徑是否為文件:
判斷路徑是否為目錄:
判斷路徑是否為鏈接:
判斷路徑是否為掛載點:
把目錄和文件名合成一個路徑:
轉換path的大小寫和斜杠:
規(guī)范path字符串形式:
返回path的真實路徑:
從start開始計算相對路徑:
判斷目錄或文件是否相同:
判斷fp1和fp2是否指向同一文件:
判斷stat tuple stat1和stat2是否指向同一個文件:
把路徑分割成 dirname 和 basename,返回一個元組:
一般用在 windows 下,返回驅動器名和路徑組成的元組:
分割路徑中的文件名與拓展名:
把路徑分割為加載點與文件:
遍歷path,進入每個目錄都調用visit函數(shù),visit函數(shù)必須有3個參數(shù)(arg, dirname, names),dirname表示當前目錄的目錄名,names代表當前目錄下的所有文件名,args則為walk的第三個參數(shù):
設置是否支持unicode路徑名:
推薦Full Stack Python 有各種python資源匯總,從基礎入門到各種框架web應用開發(fā)和部署,再到高級的ORM、Docker都有。以下是Full Stack Python 上總結的一些教程,我拙劣的翻譯了以下,并調整(調整順序并刪了部分內容)了一下:
1、無開發(fā)經驗,初學python
如果你不會其他語言,python是你的第一門語言:
A Byte of Python (簡明python教程,這個有中文版簡明 Python 教程)是非常好的入門教程。
Learn Python the Hard Way (Zed Shaw的免費教程,個人強烈推薦)
Python, Django and Flask教程: Real Python (收費,需購買)
short 5 minute video 解釋了為什么你的出發(fā)點應該是要完成什么項目,或者解決什么問題,而不是為了學一門語言而去學一門語言。
Dive into Python 3 是一本開源的python教程,提供HTML和PDF版。
Code Academy 有一個為純新手準備的 Python track 。
Introduction to Programming with Python 介紹了基本語法和控制結構等,提供了大量代碼示例。
O'Reilly 的書 Think Python: How to Think Like a Computer Scientist 是非常好的入門教材。
Python Practice Book 是一本python練習的書,幫你掌握python基本語法。
想通過做實際項目來學編程?看看這個 this list of 5 programming project for Python beginners(5個適合python初學者的編程項目)。
Reddit的創(chuàng)造者之一寫了一個教程,如何用python構建一個博客網站(use Python to build a blog.),使非常好的web編程入門。
The fullstack python的作者寫了一篇關于如何學習python的文章learning Python 。
2、有開發(fā)經驗 ,初學Python
Learn Python in y minutes ,讓你在幾分鐘內快速上手,有個大概了解。
Python for you and me , python的語法,語言的主要結構等,還包含來Flask Web App的教程。
The Hitchhiker’s Guide to Python
How to Develop Quality Python Code ,如何開發(fā)高質量的python代碼
3、進階
The Python Ecosystem: An Introduction , 關于python生態(tài)系統(tǒng),虛擬機、python包管理器pip、虛擬環(huán)境virtualenv、還有很多進階主題
The Python Subreddit ,就是python的reddit節(jié)點(相當于中國的貼吧),是一個活躍的社區(qū),可以交流討論,解決問題等。
Good to Great Python Reads ,收集進階和高級python文章,講了很多細微差異和python語言本身的細節(jié)。
博客 Free Python Tips ,有很多python和python生態(tài)系統(tǒng)的文章。
Python Books ,有一些免費的Python, Django, 數(shù)據(jù)分析等方面的書。
Python IAQ: Infrequently Asked Questions ,關于python 經常問到的問題。
4、視頻,屏幕錄像,演示文稿等
一些技術交流會議的視頻錄像: best Python videos
5、python的包
awesome-python ,收集了python各種非常好用非??岬陌?,確實非常awesome,讓作者相見恨晚( I wish I had this page when I was just getting started)。
easy-python
6、 播客(Podcasts)
Talk Python to Me , 關注使用python的人們和組織,每一期都會邀請一些開發(fā)者談談他們的工作等。
Podcast.__init__ ,關于python和讓python更牛B的人們。
7、新聞資訊(可訂閱)
Python Weekly , 最新的python文章、視頻、項目、資訊 。
PyCoder's Weekly ,和python weekly類似。
Import Python
一 新建工程
命令: django-admin startproject mysite
# 有的需要輸入: django-admin.py startproject mysite
這是你會發(fā)現(xiàn)在當前目錄下,生成了一個文件夾mysite,其結構為:
mysite/
manage.py
mysite/
__init.py
settings.py
urls.py
其中:
manage.py:一個命令行工具,通過它可以調用Django shell和數(shù)據(jù)庫等。鍵入python manage.py -h,查看它的相關功能。
__init__.py:讓 Python 把該目錄當成一個開發(fā)包 (即一組模塊)所需的文件。這是一個空文件,一般你不需要修改它。
settings.py:項目的默認設置,包括數(shù)據(jù)庫信息,調試標志以及其他一些工作的變量。
urls.py:django項目的URL設置。 可視其為你的django網站的目錄, 負責把URL模式映射到應用程序。
wsgi.py: 服務器網關接口(Python Web Server Gateway Interface),web服務器和web服務程序或者框架之間的一種簡單而通用的接口。
二 運行服務器
mysite(上一層)目錄下執(zhí)行命令:python manager.py runserver
如果出現(xiàn)報錯:
XXX
You have unapplied migrations; your app may not work properly until
they are applied. Run 'python manage.py migrate' to apply them.
XXX
很明顯,已經告訴我們怎么做了,那就執(zhí)行一下:python manage.py migrate
話說這個migrate是干什么的呢,它可以讓我們在修改Model后可以在不影響現(xiàn)有數(shù)據(jù)的前提下重建表結構。
可以看到如下輸出:
Operations to perform:
Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
這是你會發(fā)現(xiàn)在上一層的mysite目錄下面多了一個文件dg.sqlite3
(或者在settings.py里加上這么一句: TEST_RUNNER = 'django.test.runner.DiscoverRunner' )
然后重新運行服務器就可以了,有如下輸出:
System check identified no issues (0 silenced).
October 23, 2014 - 01:20:03
Django version 1.7.1, using settings 'mysite.settings'
Starting development server at
則說明運行服務器成功。
匿名函數(shù):使用lambda創(chuàng)建的函數(shù),所謂匿名,意即不再使用def語句這樣標準的形式定義一個函數(shù)。
好處:
1、使用Python寫一些執(zhí)行腳本時,使用lambda可以省去定義函數(shù)的過程,讓代碼更加精簡。
2、對于一些抽象的,不會別的地方再復用的函數(shù),有時候給函數(shù)起個名字也是個難題,使用lambda不需要考慮命名的問題。
3、使用lambda在某些時候讓代碼更容易理解。了解更多python匿名函數(shù)相關知識,可以來老男孩教育。
應用場景:經常與一些內置函數(shù)相結合使用,比如說map()、filter()、sorted()、reduce()等。
表達式格式:lambda 參數(shù)列表:lambda體