python筆記

一、在python中互換兩個變量的值與其他語言有很大的不同,具體做法是:

(x,y) = (1,2)

  (x,y) = (y,x)

這樣x的值就變成了2,y的值就變成了1

二、用__name__指示模塊是如何加載的

如果是導入的,__name__變量裏包含的就是該模塊的名字

如果是直接執行的,__name__變量裏包含的就是‘__main__’

三、python一些比較明顯的特徵:

變量不必提前定義。

變量類型不必定義。

程序員不必關心內存管理。

變量名可以“回收使用”。

del語句允許明示性的收回使用中的變量。

四、如果我們只想從sys模塊中導入exit()函數,其他東西都不要,就可以使用下面的語句替換程序中的語句:

from sys import exit

(但是我記得 有書上說不建議使用這種寫法,因爲這種方法容易引起命名空間混淆的問題)

經本人實踐證明,此寫法不可靠,在寫代碼時,寫成import xml.dom.minidom不會產生錯誤,而寫成from xml.dom import minidom就出現了錯誤!!!

四、漢字寫入的問題

open(configpath,'a').write('<description>'+'\n'+name+'描述信息')

如果這樣寫入之後‘描述信息四個字會是亂碼’,就在這個文件最開始處加上#coding=gbk,尤其注意不能在等號左右加上空格,加上空格會有錯,導致最後寫入的依舊是亂碼

五、os.walk函數

函數聲明:walk(top,topdown=True,οnerrοr=None)
1>參數top表示需要遍歷的目錄樹的路徑
2>參數topdown的默認值是"True",表示首先返回目錄樹下的文件,然後在遍歷目錄樹的子目錄.Topdown的值爲"False"時,則表示先遍歷目錄樹的子目錄,返回子目錄下的文件,最後返回根目錄下的文件
3>
參數onerror的默認值是"None",表示忽略文件遍歷時產生的錯誤.如果不爲空,則提供一個自定義函數提示錯誤信息後繼續遍歷或拋出異常中止遍歷
它返回的是一個元組tupple(dirpath, dirnames, filenames), 

其中第一個爲起始路徑,

第二個爲起始路徑下的文件夾,

第三個是起始路徑下的文件.

dirpath是一個string,代表目錄的路徑,

dirnames是一個list,包含了dirpath下所有子目錄的名字,即目錄列表

filenames是一個list,包含了非目錄文件的名字.這些名字不包含路徑信息,如果需要得到全路徑,需要使用 os.path.join(dirpath, name).

六、python -os模塊屬性

os 模塊屬性

linesep 用於在文件中分隔行的字符串
sep 用來分隔文件路徑名的字符串
pathsep 用於分隔文件路徑的字符串
curdir 當前工作目錄的字符串名稱
pardir (當前工作目錄的)父目錄字符串名稱

os 模塊的文件/目錄訪問函數

文件處理
mkfifo()/mknod() 創建命名管道/創建文件系統節點
remove()/unlink() 刪除文件   os.remove()函數用來刪除一個文件。
rename()/renames() 重命名文件  
*stat() 返回文件信息(包含stat(), lstat(), xstat())
symlink() 創建符號鏈接
utime() 更新時間戳
tmpfile() 創建並打開('w+b')一個新的臨時文件
walk() 生成一個目錄樹下的所有文件名

目錄/文件夾
chdir()/fchdir() 改變當前工作目錄/通過一個文件描述符改變當前工作目錄
chroot() 改變當前進程的根目錄
listdir() 列出指定目錄的文件   返回指定目錄下的所有文件和目錄名。 os.listdir(dirname):列出dirname下的目錄和文件
getcwd()/getcwdu() 返回當前工作目錄/功能相同, 但返回一個 Unicode 對象  os.getcwd()函數得到當前工作目錄,即當前Python腳本工作的目錄路徑。
mkdir()/makedirs() 創建目錄/創建多層目錄
rmdir()/removedirs() 刪除目錄/刪除多層目錄

(如果想要刪除一個含有許多文件的目錄樹,這時我們可以使用shutil模塊提供的rmtree函數,如下所示:
  shutil.rmtree('mydir')

它相當於UNIX操作系統中的命令rm -rf mydir。 )

訪問/權限
access() 檢驗權限模式
chmod() 改變權限模式
chown()/lchown() 改變 owner 和 group ID/功能相同, 但不會跟蹤鏈接
umask() 設置默認權限模式

文件描述符操作
open() 底層的操作系統 open (對於文件, 使用標準的內建 open() 函數)
read()/write() 根據文件描述符讀取/寫入數據
dup()/dup2() 複製文件描述符號/功能相同, 但是是複製到另一個文件描述符

設備號
makedev() 從 major 和 minor 設備號創建一個原始設備號
major()/minor() 從原始設備號獲得 major/minor 設備號

os.path 模塊中的路徑名訪問函數

分隔
basename() 去掉目錄路徑, 返回文件名
dirname() 去掉文件名, 返回目錄路徑
join() 將分離的各部分組合成一個路徑名
split() 返回 (dirname(), basename()) 元組
splitdrive() 返回 (drivename, pathname) 元組
splitext() 返回 (filename, extension) 元組

信息
getatime() 返回最近訪問時間
getctime() 返回文件創建時間
getmtime() 返回最近文件修改時間
getsize() 返回文件大小(以字節爲單位)

查詢
exists() 指定路徑(文件或目錄)是否存在
isabs() 指定路徑是否爲絕對路徑
isdir() 指定路徑是否存在且爲一個目錄
isfile() 指定路徑是否存在且爲一個文件
islink() 指定路徑是否存在且爲一個符號鏈接
ismount() 指定路徑是否存在且爲一個掛載點
samefile() 兩個路徑名是否指向同個文件
原文地址:http://zhangjunhd.blog.51cto.com/113473/453857

下面列舉一些說明:
1. os.sep 可以取代操作系統特定的路徑分割符。
2. os.name字符串指示你正在使用的平臺。比
如對於Windows,它是'nt',而對於Linux/Unix用戶,它是'posix'。
3. os.getcwd()函數得到當前工作目錄,即當前Python腳本工作的目錄路徑。
4. os.getenv()和os.putenv()函數分別用來讀取和設置環境變量。
5. os.listdir()返回指定目錄下的所有文件和目錄名。
6. os.remove()函數用來刪除一個文件。
7. os.system()函數用來運行shell命令。
8. os.linesep字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
9. os.path.split()函數返回一個路徑的目錄名和文件名。
10. os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個文件還是目錄。
11. os.path.existe()函數用來檢驗給出的路徑是否真地存在

os和os.path模塊
os.listdir(dirname):列出dirname下的目錄和文件
os.getcwd():獲得當前工作目錄
os.curdir:返回但前目錄('.')
os.chdir(dirname):改變工作目錄到dirname

os.path.isdir(name):判斷name是不是一個目錄,name不是目錄就返回false
os.path.isfile(name):判斷name是不是一個文件,不存在name也返回false
os.path.islink(name) :判斷name是不是一個符號鏈接
os.path.exists(name):判斷是否存在文件或目錄name
os.path.getsize(name):獲得文件大小,如果name是目錄返回0L
os.path.abspath(name):獲得絕對路徑
os.path.normpath(path):規範path字符串形式
os.path.split(name):分割文件名與目錄(事實上,如果你完全使用目錄,它也會將最後一個目錄作爲文件名而分離,同時它不會判斷文件或目錄是否存在)
os.path.splitext():分離文件名與擴展名
os.path.join(path,name):連接目錄與文件名或目錄
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路徑 

六、路徑反斜槓問題

如果是自己定義了一個類然後去調用,且有參數爲路徑形式的,在我們自己給參數賦值時要寫兩個反斜槓以免出現異常,比如\test,如果這樣寫的話肯定會出現問題,必須寫成\\test。而在用python寫的程序裏傳遞參數時,比如A類調用B類的某個函數,此函數有一個參數是path,在A類中的某個函數可以得到一個path值,然後傳遞給B類的這個函數,他會自動寫成兩個反斜槓的路徑,但如果你想看看A類的這個函數得到的路徑值,想打印出來,打印出來的是一個反斜槓的路徑。

所以要注意的是,只是在我們手動輸入一個路徑時,要寫成:c:\\testcase\\test1這樣的形式。

七、

python sys模塊包含了與python解釋器和它的環境有關的函數,這個你可以通過dir(sys)來查看他裏面的方法和成員屬性裏面有個 sys.path屬性。他是一個list,默認情況下導入文件或者模塊的話,他會先在sys.path裏找模塊的路徑。如果沒有的話,程序就會報錯。

所以我們一般自己寫程序的話。最好把自己的模塊路徑給加到當前模塊掃描的路徑裏,eg: sys.path.append('你的模塊的名稱'),這樣程序就不會

因爲找不到模塊而報錯。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章