1. 程式人生 > >python學習_24(目錄)

python學習_24(目錄)

os.curdir
返回當前目錄
>>> os.curdir
'.'

os.pardir
返回當前目錄的父目錄
>>> os.pardir
'..'
#切換到上級目錄
>>> os.chdir(os.pardir)
>>> os.getcwd()
'E:\\'

os.getcwd()
獲取當前工作目錄

>>> os.getcwd()
'E:\\'
>>> os.chdir("個人")
>>> os.getcwd()
'E:\\個人'

os.chdir(path)
切換到指定工作目錄
>>> os.chdir("e:\\python")
>>> os.getcwd()
'e:\\python'

os.name
獲取當前使用的作業系統型別(其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix)

>>> os.name
'nt'

os.mkdir(path [, mode=0777])
生成單級目錄;相當於linux中的mkdir dirname

>>> os.mkdir("1212")

>>> os.chdir("1212")
>>> os.getcwd()
'e:\\python\\1212'

os.makedirs(path [, mode=0777])
可生成多層遞迴目錄,父目錄如果不存在,遞迴生成。
>>> os.makedirs("e:\\e\\e")
>>> os.chdir("e:\\e\\e")
>>> os.getcwd()
'e:\\e\\e'

os.removedirs(path)
若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,如果目錄不為空則不刪除

>>> os.removedirs("e:\\e\\e")

os.rmdir(path)
刪除單級非空目錄,若目錄不為空則無法刪除,會報錯

>>> os.mkdir("11111")
>>> os.rmdir("11111")

os.listdir(path)
列出目錄下的所有檔案和子目錄,包括隱藏檔案和目錄,返回包含檔案和子目錄的列表

>>> os.listdir("e:\\python")
['0.txt', '1.txt', '10.txt', '1008.txt', '101401.txt', '1212', '2.txt', '3.txt', '4.txt', '
ess.py', 'process.pyc', 'redata.txt', 'restful.py', 'singleton.py', 'test.py', 'w.txt']

os.remove(filePath)
刪除一個檔案,只能刪除檔案不能刪除目錄,filePath為檔案路徑,可以為絕對路徑,也可以為相對路徑
>>> os.chdir("e:\\python\\")
>>> os.remove("1.txt")

os.rename(oldname, newname)
重新命名檔案和目錄

>>> os.rename("2.txt","232323.txt")#檔案

>>> os.rename("e:\\python2","e:\\python2222")#目錄

os.stat(path)
獲取檔案的一些屬性值

>>> os.stat("3.txt")
os.stat_result(st_mode=33206, st_ino=281474976711192, st_dev=105876, st_nlink=1, st_uid=0, st_gid=0, st_size=201, st_atime=1534340733, st_mtime=1539184690, st_ctime=1534340733)

st_size 檔案大小,位元組
st_atime 檔案的訪問時間
st_mtime 檔案的修改時間啊
st_ctime 檔案的建立時間

訪問屬性值

>>> os.stat("3.txt").st_ctime
1534340733.0906618

os.utime(path[, (atime, mtime)])
修改檔案訪問時間、修改時間
#encoding =utf-8

import os

os.utime(r'e:\b.txt',(1375448978,1369735977))
fileinfo = os.stat(r'e:\b.txt')
print ("access time of b.txt : %s \n modified time of b.txt: %s"  % 

(fileinfo.st_atime,fileinfo.st_mtime))

os.system (command)
執行系統命令

>>> os.system("dir e:\\python")
os.linesep
作業系統的換行分隔符
>>> os.linesep  
'\r\n'

os.pathsep
路徑之間分割符
如:c:\\python;d:\\python
>>> os.pathsep
';'
os.sep
作業系統的路徑分割符,如e:\\python\\3.txt

>>> os.sep
'\\'

os.access(path, mode)
輸出檔案許可權模式
import os
with open(r"c:\gloryroadtest.txt","w") as f:pass
print (os.access(r'c:\gloryroadtest.txt', os.W_OK))
print (os.access(r'c:\gloryroadtest.txt', os.R_OK))
print (os.access(r'c:\gloryroadtest.txt', os.X_OK))

W寫,R讀,X可執行,

os.chmod(path, mode)
Linux上會有效,設定檔案許可權為可讀、可寫和可執行
>>> os.chmod("e:\\python\\3.txt",777)

os.popen(command [, mode='r' [, bufsize]])
執行shell命令,並返回一個檔案物件。然後通過操作檔案的方法去操作這個
檔案物件。
>>> for v in os.popen("dir"):
...     print(v)
...

os.walk(top,topdown=True,onerror=None, followlinks=False)
➢top:表示需要遍歷的目錄樹的路徑。- 根目錄下的每一個資料夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【資料夾路徑, 資料夾名字, 檔名】
➢topdown的預設值是“True”,表示首先返回目錄樹下的檔案,然後遍歷目錄樹下的
子目錄。值設為False時,則表示先遍歷目錄樹下的子目錄,返回子目錄下的檔案,最後
返回根目錄下的檔案。
topdown=False 從最底層目錄開始遍歷
topdown=True 從最頂層目錄開始遍歷

➢onerror的預設值是“None”,表示忽略檔案遍歷時產生的錯誤。如果不為空,則提
供一個自定義函式提示錯誤資訊後繼續遍歷或丟擲異常中止遍歷。
➢該函式返回一個列表,列表中的每一個元素都是一個元組,該元組有3個元素,分別表
示每次遍歷的路徑名,目錄列表和檔案列表。
➢預設情況下,os.walk 不會遍歷軟連結指向的子目錄,若有需要請將followlinks設定為
true
>>> for root,dirs,files in os.walk("e:\\testdemo"):
...     for dir in dirs:
...         print(dir)
...     for file in files:
...         print(file)
...
root,dirs,files是 一個三元組,root,為資料夾路徑,dirs為資料夾下的子目錄列表,files為資料夾路徑下的檔案列表,每一個資料夾都會產生自己的三元組,針對每個資料夾都會遍歷下面的子目錄和檔案;

#encoding=utf-8
import os
for root,dirs,files in os.walk("e:\\python"):
     print("當前目錄:",root)
     for dir in dirs:
         print("目錄名:",dir)
     for file in files:
         print("檔名:",os.path.join(root,file))

os.path.abspath(path)
返回絕對路徑,但是檔案不一定存在
>>> os.getcwd()
'e:\\python'

>>> os.path.abspath("3.txt")
'e:\\python\\3.txt'

os.path.split(path)
將path分割成路徑名和檔名,返回一個元組,如果path是一個路徑不包含命名,會將最後一個目錄作為檔名分離
>>> os.path.split("e:\\python\\3.txt")

('e:\\python', '3.txt')#元組
>>> os.path.split("e:\\python")
('e:\\', 'python')
os.path.splitext(path)
分離檔名與副檔名,返回一個元組
>>> os.path.splitext("e:\\python\\3.txt")
('e:\\python\\3', '.txt')
os.path.dirname(path)
返回path的目錄路徑,就是os.path.split(path)的第一個元素
>>> os.path.dirname("e:\\python\\3.txt")
'e:\\python'

os.path.basename(path)
返回path中的檔名,就是os.path.split(path)的第二個元素
>>> os.path.basename("e:\\python\\3.txt")
'3.txt'

os.path.exists(path)
判斷path指定的目錄或檔案是否存在

>>> os.path.exists("e:\\python")
True
>>> os.path.exists("e:\\python\\3.txt")
True

os.path.isabs(path)
判斷path是否是絕對路徑
>>> os.path.isabs("e:\\python\\3.txt")
True
os.path.isfile(path)
判斷path是否是檔案
>>> os.path.isfile("e:\\python\\3.txt")
True
>>> os.path.isfile("e:\\python")
False

os.path.isdir(path)
判斷path是否目錄

>>> os.path.isdir("e:\\python\\3.txt")
False
>>> os.path.isdir("e:\\python")
True

os.path.normpath(path)
將path轉換為規範的路徑
>>> os.path.normpath("e:/python\3.txt")
'e:\\python\x03.txt'

os.path.join(a, *p)
連線兩個或更多的路徑名,中間以“\”分隔,如果所給的引數中都是絕對路徑名,那先給的絕對路徑將會被丟棄
>>> os.path.join("e:\\python","test","3.txt")
'e:\\python\\test\\3.txt'

#兩個都是絕對路徑e:\\python被丟棄
>>> os.path.join("e:\\python","e:\\test")
'e:\\test'

os.path.getatime(filename)
返回檔案的最後訪問時間,返回時間戳

>>> os.path.getatime("e:\\python\\3.txt")
1534340733.0906618

#coding=utf-8
import os
import time
#獲取檔案最後訪問時間
lastTime = os.path.getatime(r"e:\python\a.py")
print (lastTime)
#將時間戳轉成時間元組
formatTime = time.localtime(lastTime)
print (formatTime)
#格式化時間元組為時間字串
print (time.strftime("%Y-%m-%d %H:%M:%S",  formatTime))

os.path.getctime(filename)
返回檔案的建立時間,返回時間戳

>>> os.path.getctime("e:\\python\\3.txt")
1534340733.0906618

os.path.getmtime(filename)
返回檔案的最後修改時間,返回時間戳

>>> os.path.getmtime("e:\\python\\3.txt")
1539184690.78357
os.environ
獲取當前的環境變數
>>> os.environ

environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Ad
)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\
: 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Administrator.USER-2018
ER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'd:\\ProgramData\\An
nda3\\Library\\bin;d:\\ProgramData\\Anaconda3\\Scripts;C:\\Python36\\Scr
\Library\\usr\\bin;d:\\ProgramData\\Anaconda2\\Library\\bin;d:\\ProgramD
v1.0\\;C:\\Python27;C:\\Python27\\Scripts', 'PATHEXT': '.COM;.EXE;.BAT;.
del 37 Stepping 5, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REV
x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '$P$G', 'PSMODULEP
TEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\ADMINI
E': 'Administrator', 'USERPROFILE': 'C:\\Users\\Administrator.USER-20180
ilogfile.log', '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})