Python os.access() 方法
語法:
access()方法語法格式如下
os.access(path, mode):
path -- 要用來檢測是否有訪問權(quán)限的路徑挽荠。
mode -- mode為F_OK,測試存在的路徑,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
"""
os.F_OK: 作為access()的mode參數(shù),測試path是否存在楔壤。
os.R_OK: 包含在access()的mode參數(shù)中 , 測試path是否可讀。
os.W_OK 包含在access()的mode參數(shù)中 算墨, 測試path是否可寫。
os.X_OK 包含在access()的mode參數(shù)中 汁雷,測試path是否可執(zhí)行净嘀。
"""
import os, sys
ret = os.access("files/os_sys.txt", os.F_OK)
print("F_OK - 返回值 %s"% ret)
ret = os.access("files/os_sys.txt", os.R_OK)
print("R_OK - 返回值 %s"% ret)
ret = os.access("files/os_sys.txt", os.W_OK)
print("W_OK - 返回值 %s"% ret)
ret = os.access("files/os_sys.txt", os.X_OK)
print("X_OK - 返回值 %s"% ret)
os.chdir() 方法用于改變當(dāng)前工作目錄到指定的路徑
語法
chdir()方法語法格式:os.chdir(path)
參數(shù) - path -- 要切換到的新路徑。
返回值 - 如果允許訪問返回 True , 否則返回False
path = "files/os_sys.txt"
查看當(dāng)前工作目錄
retval = os.getcwd()
print ("當(dāng)前工作目錄為 %s" % retval)
修改當(dāng)前工作目錄
os.chdir(path)
查看修改后的工作目錄
retval = os.getcwd()
print ("目錄修改成功 %s" % retval)
概述
os.chflags() 方法用于設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記侠讯。多個標(biāo)記可以使用 OR 來組合起來挖藏。
只支持在 Unix 下使用。
語法
chflags()方法語法格式:os.chflags(path, flags)
"""
參數(shù)
path -- 文件名路徑或目錄路徑厢漩。
flags -- 可以是以下值:
stat.UF_NODUMP: 非轉(zhuǎn)儲文件
stat.UF_IMMUTABLE: 文件是只讀的
stat.UF_APPEND: 文件只能追加內(nèi)容
stat.UF_NOUNLINK: 文件不可刪除
stat.UF_OPAQUE: 目錄不透明膜眠,需要通過聯(lián)合堆棧查看
stat.SF_ARCHIVED: 可存檔文件(超級用戶可設(shè))
stat.SF_IMMUTABLE: 文件是只讀的(超級用戶可設(shè))
stat.SF_APPEND: 文件只能追加內(nèi)容(超級用戶可設(shè))
stat.SF_NOUNLINK: 文件不可刪除(超級用戶可設(shè))
stat.SF_SNAPSHOT: 快照文件(超級用戶可設(shè))
"""
import os,stat
path = "files/os_sys.txt"
為文件設(shè)置標(biāo)記,使得它不能被重命名和刪除
flags = stat.SF_NOUNLINK
retval = os.chflags( path, flags )
print ("返回值: %s" % retval)
概述
os.chmod() 方法用于更改文件或目錄的權(quán)限溜嗜。
語法
chmod()方法語法格式:os.chmod(path, mode)
該方式?jīng)]有返回值
"""
參數(shù)
path -- 文件名路徑或目錄路徑宵膨。
flags -- 可用以下選項按位或操作生成, 目錄的讀權(quán)限表示可以獲取目錄里文件名列表炸宵, 辟躏,執(zhí)行權(quán)限表示可以把工作目錄切換到此目錄 ,刪除添加目錄里的文件必須同時有寫和執(zhí)行權(quán)限 土全,文件權(quán)限以用戶id->組id->其它順序檢驗,最先匹配的允許或禁止權(quán)限被應(yīng)用捎琐。
stat.S_IXOTH: 其他用戶有執(zhí)行權(quán)0o001
stat.S_IWOTH: 其他用戶有寫權(quán)限0o002
stat.S_IROTH: 其他用戶有讀權(quán)限0o004
stat.S_IRWXO: 其他用戶有全部權(quán)限(權(quán)限掩碼)0o007
stat.S_IXGRP: 組用戶有執(zhí)行權(quán)限0o010
stat.S_IWGRP: 組用戶有寫權(quán)限0o020
stat.S_IRGRP: 組用戶有讀權(quán)限0o040
stat.S_IRWXG: 組用戶有全部權(quán)限(權(quán)限掩碼)0o070
stat.S_IXUSR: 擁有者具有執(zhí)行權(quán)限0o100
stat.S_IWUSR: 擁有者具有寫權(quán)限0o200
stat.S_IRUSR: 擁有者具有讀權(quán)限0o400
stat.S_IRWXU: 擁有者有全部權(quán)限(權(quán)限掩碼)0o700
stat.S_ISVTX: 目錄里文件目錄只有擁有者才可刪除更改0o1000
stat.S_ISGID: 執(zhí)行此文件其進(jìn)程有效組為文件所在組0o2000
stat.S_ISUID: 執(zhí)行此文件其進(jìn)程有效用戶為文件所有者0o4000
stat.S_IREAD: windows下設(shè)為只讀
stat.S_IWRITE: windows下取消只讀
"""
os.chmod("files/os_sys.txt", stat.S_IXGRP)
設(shè)置文件可以被其他用戶寫入
os.chmod("files/os_sys.txt", stat.S_IWOTH)
print ("修改成功!!")
概述
os.dup2() 方法用于將一個文件描述符 fd 復(fù)制到另一個 fd2。
Unix, Windows 上可用裹匙。
語法
dup2()方法語法格式:os.dup2(fd, fd2);
參數(shù)
fd -- 要被復(fù)制的文件描述符
fd2 -- 復(fù)制的文件描述符
f = open('txt', 'a')
將這個文件描述符代表的文件瑞凑,傳遞給 1 描述符指向的文件(也就是 stdout)
os.dup2(f.fileno(), 1)
關(guān)閉文件
f.close()
print 輸出到標(biāo)準(zhǔn)輸出流,就是文件描述符1
print('runoob')
print('google')
概述
os.fchown() 方法用于修改一個文件的所有權(quán)概页,這個函數(shù)修改一個文件的用戶ID和用戶組ID籽御,該文件由文件描述符fd指定。
Unix上可用。
語法
fchown()方法語法格式:os.fchown(fd, uid, gid)
參數(shù)
fd -- 文件描述符
uid -- 文件所有者的用戶id
gid -- 文件所有者的用戶組id
打開文件 "/tmp/foo.txt"
fd = os.open("files/os_sys.txt", os.O_RDONLY)
設(shè)置文件的用戶 id 為 100
os.fchown(fd, 100, -1)
設(shè)置文件的用戶組 id 為 50
os.fchown(fd, -1, 50)
print("修改權(quán)限成功!!")
關(guān)閉文件
os.close(fd)
概述
os.ftruncate() 裁剪文件描述符fd對應(yīng)的文件, 它最大不能超過文件大小篱蝇。
Unix上可用贺待。
語法
ftruncate()方法語法格式:os.ftruncate(fd, length)
參數(shù)
fd -- 文件的描述符。
length -- 要裁剪文件大小零截。
打開文件
fd = os.open( "files/os_sys.txt", os.O_RDWR|os.O_CREAT )
寫入字符串
os.write(fd, "This is test - This is test")
使用 ftruncate() 方法
os.ftruncate(fd, 10)
讀取內(nèi)容
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print ("讀取的字符串是 : ", str)
關(guān)閉文件
os.close( fd)
print ("關(guān)閉文件成功!!")
概述
os.makedev() 方法用于以major和minor設(shè)備號組成一個原始設(shè)備號麸塞。
語法
makedev()方法語法格式:os.makedev(major, minor)
參數(shù)
major -- Major 設(shè)備號
minor -- inor 設(shè)備號
path = "files/os_sys.txt"
獲取元組
info = os.lstat(path)
獲取 major 和 minor 設(shè)備號
major_dnum = os.major(info.st_dev)
minor_dnum = os.minor(info.st_dev)
print ("Major 設(shè)備號 :", major_dnum)
print ("Minor 設(shè)備號 :", minor_dnum)
生成設(shè)備號
dev_num = os.makedev(major_dnum, minor_dnum)
print ("設(shè)備號 :", dev_num)
概述
os.pathconf() 方法用于返回一個打開的文件的系統(tǒng)配置信息。
Unix 平臺下可用涧衙。
語法
fpathconf()方法語法格式:os.fpathconf(fd, name)
"""
fd -- 文件描述符
name -- 檢索的系統(tǒng)配置的值哪工,它也許是一個定義系統(tǒng)值的字符串,這些名字在很多標(biāo)準(zhǔn)中指定(POSIX.1, Unix 95, Unix 98, 和其它)弧哎。
一些平臺也定義了一些額外的名字雁比。這些名字在主操作系統(tǒng)上pathconf_names的字典中。對于不在pathconf_names中的配置變量撤嫩,傳遞一個數(shù)字作為名字偎捎,也是可以接受的。
"""
打開文件
fd = os.open( "files/os_sys.txt", os.O_RDWR|os.O_CREAT )
print ("%s" % os.pathconf_names)
獲取文件最大連接數(shù)
no = os.fpathconf(fd, 'PC_LINK_MAX')
print ("Maximum number of links to the file. :%d" % no)
獲取文件名最大長度
no = os.fpathconf(fd, 'PC_NAME_MAX')
print ("Maximum length of a filename :%d" % no)
關(guān)閉文件
os.close( fd)
print ("關(guān)閉文件成功!!")
概述
os.rename() 方法用于命名文件或目錄序攘,從 src 到 dst,如果dst是一個存在的目錄, 將拋出OSError茴她。
語法
rename()方法語法格式:os.rename(src, dst)
參數(shù)
src -- 要修改的目錄名
dst -- 修改后的目錄名
列出目錄
print ("目錄為: %s"%os.listdir(os.getcwd()))
重命名
os.rename("test","test2")
print ("重命名成功。")
列出重命名后的目錄
print ("目錄為: %s" %os.listdir(os.getcwd()))