OS模塊
OS模塊是Python標準庫中用於訪問操作系統功能的模塊。
使用OS模塊提供的接口,能夠實現跨平臺訪問。
最常見的操作:
- 目錄的操作
- 判斷
1.系統操作
-
os.sep:用於查看系統路徑的分隔符;
-
Window—>’\’
-
ubuntu—>’/’
-
-
os.name:顯示我們正在使用的平臺
- Window---->‘nt’
- Linux/Unix—>‘posix’
-
os.getenv()—>讀取環境變量(environment)
-
os.getcwd()—>獲取當前路徑
2.目錄操作—增刪改查(direction)
- os.listdir():返回指定目錄下的所有文件和目錄名
import os
print(os.listdir()) # 未指定路徑,默認當前路徑
#['.idea', 'data', 'day01.py', 'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py', '__pycache__']
dirs = "C:\\Users\\11980\Desktop\學習\python"
print(os.listdir(dirs)) # 指定路徑下
#['JetBrains PyCharm 2018.1 x64.lnk', 'pip-19.1.1', 'python學習筆記', 'python安裝', 'python安裝.zip', 'typora', 'xmind', '作業', '周總結', '學習工具.zip', '短學期']
-
目錄的創建:
- os.mkdir(path):創建目錄,但僅創建一級目錄;若文件已存在則報錯
import os os.mkdir("os_test")
- os.makedirs(path):創建目錄,創建多級目錄;若文件已存在則報錯
import os os.makedirs("main_file\sub_file")
-
目錄/文件刪除
- os.rmdir(path):刪除空目錄(一級),若不爲空則報錯
- os.removedirs(path):刪除空目錄(多級),若根目錄下存在文件,則僅刪除子目錄
- os.remove(path):刪除文件,必須是文件,不能刪除目錄
import os
os.rmdir('os_test')
os.removedirs('main_file\sub_file')
os.removedirs('data\李躍2.txt')
-
更改目錄
- os.chdir(path):change direction # 將當前工作目錄更改到指定的工作目錄。
- os.rename(old_name, new_name):
import os os.chdir('..') os.listdir() #['dxq', 'test', 'test1'] os.chdir('./test1/data') os.rename('李躍.txt', 'liyue.txt')
3.判斷文件
- os.path.exists(path):判斷文件或者目錄是否存在。存在,返回True;否則返回False
import os
print(os.path.exists('day01.py'))
#True
print(os.path.exists('day01.txt'))
#False
print(os.path.exists('data'))
#True
- os.path.isfile(path):判斷是否爲文件。是,返回True;否,返回False
import os
print(os.path.isfile('data'))
#False
print(os.path.isfile('day01.py'))
#True
- os.path.isdir(path):判斷是否爲目錄。是,返回True;否,返回False
import os
print(os.path.isdir('data'))
#True
print(os.path.isdir('day01.py'))
#False
4.拓展:
- os.path.dirname(path):返回文件路徑
- os.path.basename(path):去除路徑返回文件名
- os.path.getsize(path):返回文件大小
- os.path.abspath(path):返回絕對路徑
- os.path.join(path, name):路徑的連接
- os.path.split(path):將path的目錄和文件名稱分割開,並返回元組
- 查看文件時間:
- os.path.getmtime(path):返回文件或者目錄的最後修改時間,結果爲秒數—>modify
- os.path.getatime(path):返回文件或者目錄的最後訪問時間,結果爲秒數
- os.path.getctime(path):返回文件或者目錄的創建時間,結果爲秒數
- 獲取文件和目錄
- os.walk():文件目錄遍歷器
import os
print(os.path.dirname('D:\python\\test1\day01.py'))
#D:\python\test1
print(os.path.basename('D:\python\\test1\day01.py'))
#day01.py
print(os.path.getsize('day01.py'))
#7385
print(os.path.abspath('day01.py'))
#D:\python\test1\day01.py
print(os.path.join('D:\python\\test1', 'day01.py')) #僅做拼接,不對文件是否存在做判斷
#D:\python\test1\day01.py
print(os.path.split('D:\python\\test1\day01.py'))
#('D:\\python\\test1', 'day01.py')
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getmtime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:29:35
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getatime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getctime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
for i in os.walk('./'):
print(i)
#('./', ['.idea', 'data', 'main_file', 'os_test', '__pycache__'], ['day01.py', #'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py'])
#('./.idea', ['inspectionProfiles'], ['encodings.xml', 'misc.xml', 'modules.xml', #'test1.iml', 'workspace.xml'])
#('./.idea\\inspectionProfiles', [], [])
#('./data', [], ['GreenFlowerPorcelain.txt', 'GreenFlowerPorcelain2.txt', #'liyue2.txt', 'test.txt', 'zucc.txt', '李躍2.txt', '青花瓷.txt'])
#('./main_file', ['sub_file'], [])
#('./main_file\\sub_file', [], [])
#('./os_test', [], [])
#('./__pycache__', [], ['module_test.cpython-36.pyc'])