標籤:檔案中 不同 argv 重新整理 產生 tmp 關閉 access 時間
檔案處理
# 檔案內移動seek()方法可以在檔案中移動檔案指標到不同的位置,offset位元組代表相對於某個位置位移量,預設為0,代表從檔案開頭算起,1代表從當前位置算起,2代表從檔案末尾算起。seek()經常用來重設檔案位置指標。eg.>>> f.name‘anaconda-ks.cfg‘>>> f.next()‘#version=DEVEL\n‘>>> f.next()‘# System authorization information\n‘>>> f.seek(0)>>> f.next()‘#version=DEVEL\n‘text()方法是對seek()方法的補充:他告訴你當前檔案指標在檔案中的位置——從檔案起始算起,單位為位元組。# 其他fileno()方法返回開啟檔案的描述符,這是一個整形,可以用在如os模組(os.read())的一些底層操作上。eg.>>> f = open(‘anaconda-ks.cfg‘, ‘r‘)>>> print f.fileno()3flush()方法會直接把內部緩衝區的資料立刻寫入檔案,而不是被動地等待輸出緩衝區被寫入。一般用在檔案關閉前重新整理緩衝區。isatty()是一個布爾內建函數,當檔案是一個類tty裝置是返回True,否則返回False。eg.>>> f.isatty()Falsetruncate()方法將檔案截取到當前檔案指標位置或者到給定size,一位元組為單位。可以清空檔案。## 分行符號print輸出會在末尾自動增加一個分行符號,而在語句之後增加一個逗號就可以避免這種行為。readline()和readlines()函數不會對行裡的空白字元做任何處理,所以你有必要增加上逗號。如果省略逗號就會有兩個分行符號,其中一個是輸入附帶的,另外一個是print語句自動添加的。eg.>>> print ‘Hello World!‘;print ‘Yes, We Can!‘Hello World!Yes, We Can!>>> print ‘Hello World!‘,;print ‘Yes, We Can!‘Hello World! Yes, We Can!## 檔案內建屬性file.closed # 檔案是否關閉file.name #檔案名稱file.mode #開啟檔案的方式## 檔案操作os.rename(old, new) #重新命名os.mkdir() #建立檔案夾os.remove() #刪除檔案os.chdir() #切換檔案夾os.getcwd() #得到當前路徑os.rmdir() #刪除檔案夾補充:* 檔案處理mkfifo()/mknod() #建立具名管道/建立檔案系統節點remove()/unlink() #刪除檔案rename()/renames() #重新命名檔案*stat() [包括stat()、lstat()、xstat()] #返迴文件資訊eg.>>> import os>>> os.system(‘ls‘)anaconda-ks.cfg fan lustre-master.zip test.log0>>> os.stat(‘anaconda-ks.cfg‘)posix.stat_result(st_mode=33152, st_ino=9240863, st_dev=64768L, st_nlink=1, st_uid=0, st_gid=0, st_size=955, st_atime=1513158628, st_mtime=1509810306, st_ctime=1509810306)symlink() #建立符號連結utime() #更新時間戳記tmpfile() #建立並開啟(‘w+b’)一個新的臨時檔案walk() #產生一個分類樹下的所有檔案名稱* 目錄/檔案夾chdir()/fchdir() #改變目前的目錄/通過一個檔案描述符改變當前工作目錄chroot #改變當前進程的根目錄listdir() #列出指定目錄的檔案* 訪問/許可權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,pathnam)元組splittext() #返回(filename, extension)元組* 資訊getatime() #返回最近返問時間getctime() #返迴文件建立時間getmtime() #返迴文件最近修改時間getsize() #返迴文件大小(以位元組為單位)eg. >>> os.path.getsize(‘test.log‘)48* 查詢exists() #指定路徑(檔案或者目錄)是否存在isabs() #指定路徑是否為絕對路徑isdir() #指定路徑是否存在且為一個目錄isfile() #指定路徑是否存在且為一個檔案islink() #指定路徑是否存在且為一個符號連結ismount() #指定路徑是否存在且為一個掛載點samefiel() #兩個路徑名是否指向一個檔案eg. >>> os.path.exists(‘test.log‘)True>>> os.path.isfile(‘test.log‘)True>>> os.path.isdir(‘test.log‘)False>>> os.path.islink(‘test.log‘)False>>> os.system(‘cp test.log test01.log‘)0>>> os.system(‘ls‘)anaconda-ks.cfg fan lustre-master.zip test01.log test.log0>>> os.path.samefile(‘test.log‘, ‘test01.log‘)False## 命令列參數sys.argv 是命令列參數的列表len(sys.argv)是命令列參數的個數sys.argv[0]是程式的名稱## 相關模組bz2 #訪問BZ2格式的壓縮檔csv #訪問CSV檔案filecmp #用於比較目錄和檔案gzip/zlib #讀取GNU zip(gzip)檔案(壓縮需要zlib模組)zipfile #用於讀取ZIP歸檔檔案的工具
Python——追加學習筆記(二)