Python常見文件操作的函數(shù)示例
''''' Python常見文件操作示例
os.path 模塊中的路徑名訪問(wèn)函數(shù)分隔basename() 去掉目錄路徑, 返回文件名dirname() 去掉文件名, 返回目錄路徑j(luò)oin() 將分離的各部分組合成一個(gè)路徑名split() 返回 (dirname(), basename()) 元組splitdrive() 返回 (drivename, pathname) 元組splitext() 返回 (filename, extension) 元組
信息getatime() 返回最近訪問(wèn)時(shí)間getctime() 返回文件創(chuàng)建時(shí)間getmtime() 返回最近文件修改時(shí)間getsize() 返回文件大小(以字節(jié)為單位)
查詢exists() 指定路徑(文件或目錄)是否存在isabs() 指定路徑是否為絕對(duì)路徑isdir() 指定路徑是否存在且為一個(gè)目錄isfile() 指定路徑是否存在且為一個(gè)文件islink() 指定路徑是否存在且為一個(gè)符號(hào)鏈接ismount() 指定路徑是否存在且為一個(gè)掛載點(diǎn)samefile() 兩個(gè)路徑名是否指向同個(gè)文件
os.path.isdir(name):判斷name是不是一個(gè)目錄,name不是目錄就返回false os.path.isfile(name):判斷name是不是一個(gè)文件,不存在name也返回false os.path.exists(name):判斷是否存在文件或目錄name os.path.getsize(name):獲得文件大小,如果name是目錄返回0L os.path.abspath(name):獲得絕對(duì)路徑os.path.normpath(path):規(guī)范path字符串形式os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)
os.path.splitext():分離文件名與擴(kuò)展名os.path.join(path,name):連接目錄與文件名或目錄os.path.basename(path):返回文件名os.path.dirname(path):返回文件路徑
os模塊中的文件操作:os 模塊屬性linesep 用于在文件中分隔行的字符串sep 用來(lái)分隔文件路徑名的字符串pathsep 用于分隔文件路徑的字符串curdir 當(dāng)前工作目錄的字符串名稱pardir (當(dāng)前工作目錄的)父目錄字符串名稱
1.重命名:os.rename(old, new)
2.刪除:os.remove(file)
3.列出目錄下的文件:os.listdir(path)
4.獲取當(dāng)前工作目錄:os.getcwd()
5.改變工作目錄:os.chdir(newdir)
6.創(chuàng)建多級(jí)目錄:os.makedirs(r"c:pythontest")
7.創(chuàng)建單個(gè)目錄:os.mkdir("test")
8.刪除多個(gè)目錄:os.removedirs(r"c:python") #刪除所給路徑最后一個(gè)目錄下所有空目錄。
9.刪除單個(gè)目錄:os.rmdir("test")
10.獲取文件屬性:os.stat(file)
11.修改文件權(quán)限與時(shí)間戳:os.chmod(file)
12.執(zhí)行操作系統(tǒng)命令:os.system("dir")
13.啟動(dòng)新進(jìn)程:os.exec(), os.execvp()
14.在后臺(tái)執(zhí)行程序:osspawnv()
15.終止當(dāng)前進(jìn)程:os.exit(), os._exit()
16.分離文件名:os.path.split(r"c:pythonhello.py") ——> ("c:\python", "hello.py")
17.分離擴(kuò)展名:os.path.splitext(r"c:pythonhello.py") ——> ("c:\python\hello", ".py")
18.獲取路徑名:os.path.dirname(r"c:pythonhello.py") ——> "c:\python"
19.獲取文件名:os.path.basename(r"r:pythonhello.py") ——> "hello.py"
20.判斷文件是否存在:os.path.exists(r"c:pythonhello.py") ——> True
21.判斷是否是絕對(duì)路徑:os.path.isabs(r".python") ——> False
22.判斷是否是目錄:os.path.isdir(r"c:python") ——> True
23.判斷是否是文件:os.path.isfile(r"c:pythonhello.py") ——> True
24.判斷是否是鏈接文件:os.path.islink(r"c:pythonhello.py") ——> False
25.獲取文件大。簅s.path.getsize(filename)
26.*******:os.ismount("c:\") ——> True
27.搜索目錄下的所有文件:os.path.walk()
shutil模塊對(duì)文件的操作:1.復(fù)制單個(gè)文件:shultil.copy(oldfile, newfle)
2.復(fù)制整個(gè)目錄樹:shultil.copytree(r".setup", r".backup")
3.刪除整個(gè)目錄樹:shultil.rmtree(r".backup")
臨時(shí)文件的操作:1.創(chuàng)建一個(gè)唯一的臨時(shí)文件:tempfile.mktemp() ——> filename
2.打開臨時(shí)文件:tempfile.TemporaryFile()
內(nèi)存文件(StringIO和cStringIO)操作[4.StringIO] #cStringIO是StringIO模塊的快速實(shí)現(xiàn)模塊
1.創(chuàng)建內(nèi)存文件并寫入初始數(shù)據(jù):f = StringIO.StringIO("Hello world!")
2.讀入內(nèi)存文件數(shù)據(jù):print f.read() #或print f.getvalue() ——> Hello world!
3.想內(nèi)存文件寫入數(shù)據(jù):f.write("Good day!")
4.關(guān)閉內(nèi)存文件:f.close()
''' import os import os.path import unittest import time #import pygame
class PyFileCommonOperatorTest(unittest.TestCase):def __init__(self):"""constructor"""
def test01(self):print os.linesep print os.sep print os.pathsep print os.curdir print os.pardir print os.getcwd()
print 'unittest here'
if __name__ == "__main__":t = PyFileCommonOperatorTest()
t.test01()
view plainprint?
view plainprint?
#讀文件的寫法:#讀文本文件:input = open('data', 'r')#第二個(gè)參數(shù)是默認(rèn)的,可以不加#讀二進(jìn)制文件:input = open('data', 'rb')
#讀取所有文件內(nèi)容:open('xxoo.txt')。read()
#讀取固定字節(jié)open('abinfile', 'rb')。read(100)
#讀每行file_object.readlines()