Python學習筆記四(Python OS模組)

2021-09-04 16:05:51 字數 4244 閱讀 4346

python os模組提供了乙個統一的作業系統介面函式,通過python os模組可以實現對系統本身的命令,檔案,目錄進行操作,官方參考文件(

1)os.sep 可以取代作業系統特定的路徑分割符(在linux、unix下它是'/',在windows下它是'\\',而在mac os下它是':')。

os.sep

'/ 』 #在linux返回的是'/'

mysqldir = os.sep + 'data' + os.sep + 'mysql' + os.sep + '3306' #定義mysql資料存放目錄

mysqldir

'/data/mysql/3306'

2)返回path絕對路徑。

os.path.abspath('iplist.txt')

'/root/sh/py/iplist.txt'

3)將path分割成目錄和檔名二元組返回。

mysqldir='/data/mysql/3306/mysql.sock'

os.path.split(mysqldir)

('/data/mysql/3306', 'mysql.sock')

4)返回path的目錄,其實就是os.path.split(mysqldir)第乙個元素。

os.path.dirname(mysqldir)

'/data/mysql/3306'

5)返回path最後檔名,即os.path.split(mysqldir)第二個元素。

os.path.basename(mysqldir)

'mysql.sock'

6)如果path存在,返回true,如果path不存在,返回false。

os.path.exists(mysqldir)

true

os.path.exists('/data/mysql/3308/mysql.sock')

false

7)如果path是絕對路徑,返回true,否則返回false。

os.path.isabs(mysqldir)

true

os.path.isabs('sfzhang.txt')

false

8)如果path是乙個存在的檔案,返回true,否則返回false。

os.path.isfile('/root/sh/iplist.txt')

true

os.path.isfile('/root/sh/')

false

9)如果path是乙個存在的目錄,返回true,否則返回false。

os.path.isdir('/root/sh')

true

os.path.isdir('/root/sh/sh')

false

10)返回指定目錄下的所有檔案和目錄名。

os.listdir('/root/sh/py')

['send_email.py', '1.py', 'mymodule.pyc', 'mail.py', 'geturl.py', 'using_name.py']

11)連線目錄與檔名

os.path.join('/data/mysql/3306','mysql.sock')

'/data/mysql/3306/mysql.sock'

12)建立乙個目錄create a directory。

os.mkdir('py')    #建立單個目錄

os.path.isdir('py') #判斷是否建立成功

true

os.makedirs('aa/bb/cc') #建立多級目錄

os.path.isdir('aa/bb/cc') #判斷是否建立成功

true

13)刪除目錄。

os.rmdir('py')    #刪除單個目錄

os.removedirs('aa/bb/cc') #刪除多級目錄

14)刪除檔案。

os.remove('sfzhang.txt')
15)切換目錄 change the current working directory to the specified path.

os.chdir('/usr/local')

os.path.abspath('.') #檢視是否切換成功

'/usr/local'

16)使用的作業系統的平台,比如對於windows,它是'nt',而對於linux/unix使用者,它是'posix'。

os.name

'posix'

17)返回當前python指令碼工作的目錄路徑。

os.getcwd()

'/root/sh/py'

18)執行linu型系統命令。

os.system('df -h')

檔案系統 容量 已用 可用 已用% 掛載點

/dev/sda2 9.7g 8.9g 335m 97% /

/dev/sda5 28g 12g 16g 44% /data

/dev/sda1 99m 18m 76m 19% /boot

tmpfs 249m 0 249m 0% /dev/shm

19)返回當前系統的登陸使用者。

os.getlogin()

'root'

20)目錄遍歷,該函式返回乙個元組,該元組有3個元素,分別表示每次遍歷的路徑名,目錄列表和檔案列表。

('/tmp/test/jpg', , ['3.jpg', '2.jpg', '1.jpg'])上面是我總結的os模組中常用的方法,利用這些方法可以編寫簡單的python指令碼,在利用linux計畫任務可以完成自動化管理系統的目的。下面是參照python簡明教程上面的乙個指令碼修改而來的備份目錄或者檔案的指令碼。

#!/usr/local/bin/python

#sfzhang 20130619

import os

import time #匯入os和time模組

file = ['/root/.ssh','/tmp'] #備份目錄或者檔案以list的形式指定

backup_dir = '/mnt/backup/' #備份檔案存放目錄

date = time.strftime('%y%m%d') #備份檔案時間戳(年月日)

target = backup_dir + 'backfile' + date + '.tar.gz' #備份檔案完成路徑和檔名

if os.getlogin() != 'root': #非root使用者不能執行該指令碼,

print 'must root to run this python script!'

exit ()

if not os.path.exists(backup_dir): #判斷備份目錄是否存在,如果不存在,則建立

os.mkdir(backup_dir)

print 'successfully created directory',backup_dir

tar_command = "tar -czvf '%s' %s" % (target,' '.join(file)) #採用tar形式備份

if os.system(tar_command) == 0: #備份成功或失敗提示資訊

print 'successful backup to',target

else:

print 'backup failed'

Python學習筆記(四)

dict 用 dict 表示 名字 成績 的查詢表如下 d 名字稱為key,對應的成績稱為value,dict就是通過 key 來查詢 value。key不能重複 花括號 表示這是乙個dict,然後按照 key value,寫出來即可。最後乙個 key value 的逗號可以省略。由於dict也是集...

python學習筆記(四)

0.假設你現在拿到了乙個英語句子,需要把這個句子中的每乙個單詞拿出來單獨處理。sentence i am an englist sentence 這時就需要對字串進行分割。sentence.split split 會把字串按照其中的空格進行分割,分割後的每一段都是乙個新的字串,最終返回這些字串組成乙...

python學習筆記 四

python模組,乙個.py檔案 匯入模組的語法 import importable importable 可以是包或包中的模組 import importable1,importablen import importable as preferred name 第三種語法可能導致名稱衝突 一般寫在...