python操作文件和目錄查看、創建、刪除、復制


python內置了os模塊可以直接調用操作系統提供的接口函數,os.name查詢的是操作系統,‘nt’表示windows系統

>>> import os
>>> os.name
'nt'

使用os.environ查看環境變量:

>>> os.environ
environ({'ADSK_3DSMAX_X64_2014':AppData\\Roaming', ……})

還可以獲得某個具體的環境變量的值:

>>> os.environ.get('path')
'C:\\ProgramData\\Oracle\\Java\\ja……'
>>> os.environ.get('haha','nice') #如果沒有指定的環境變量,則返回指定的值
'nice'

查看當前目錄的絕對路徑:

>>> os.path.abspath('.')
'C:\\Users\\WC'

在某個目錄下面創建新目錄,需要兩個步驟:先join(合成路徑),再mkdir()創建

>>> os.path.join('E:\Python3.6.3\workspace','測試文件夾')
'E:\\Python3.6.3\\workspace\\測試文件夾'
>>> os.mkdir('E:\\Python3.6.3\\workspace\\測試文件夾')

刪除目錄:

>>> os.rmdir('E:\\Python3.6.3\\workspace\\測試文件夾')

拆分目錄或者文件的路徑,拆分結果分為兩部分,后一部分總是最后級別的目錄或者文件名:

>>> os.path.split('E:\Python3.6.3\workspace\err.py')
('E:\\Python3.6.3\\workspace', 'err.py')
>>> os.path.split('E:\Python3.6.3\workspace')
('E:\\Python3.6.3', 'workspace')

獲得文件擴展名,返回的是一個list:

>>> os.path.splitext('E:\Python3.6.3\workspace\err.py')
('E:\\Python3.6.3\\workspace\\err', '.py')

重命名:

>>> os.rename('E:\\Python3.6.3\\workspace\\err.py','E:\\Python3.6.3\\workspace\\reerr.py')

切換目錄:

>>> os.chdir('E:\\Python3.6.3\\workspace\\')
>>> os.path.abspath('.')
'E:\\Python3.6.3\\workspace'

復制文件,需要使用python中高級的文件操作模塊shutil。shutil.copy(s,d)可以實現文件復制功能,s,d都是字符串格式,s表示源文件,d表示目的文件或者目錄,當d是文件名時,它會被用來當做復制后的文件名稱,效果相當於 復制 +重命名:

>>> import shutil
>>> import os
>>> shutil.copy('first.py','E:\Python3.6.3\workspace\備份')
'E:\\Python3.6.3\\workspace\\備份\\first.py'
>>> shutil.copy('first.py','E:\\Python3.6.3\\workspace\\備份\\first_copy.py')
'E:\\Python3.6.3\\workspace\\備份\\first_copy.py'

(以上注意的是,當重命名一個文件的時候,windows下的目錄路徑要使用\\代替\)

復制文件的內容:

>>> shutil.copyfile('E:\\Python3.6.3\\workspace\\備份\\first.py','E:\\Python3.6.3\\workspace\\備份\\first_copy.py')
'E:\\Python3.6.3\\workspace\\備份\\first_copy.py'

判斷對象是不是目錄\文件:

>>> os.path.isdir('E:\Python3.6.3\workspace\first.py')
False
>>> os.path.isdir('E:\Python3.6.3\workspace')
True
>>> os.path.isfile('E:\Python3.6.3\workspace\hello.py')
True
>>> os.path.isfile('E:\Python3.6.3\workspace')
Fals

練習:列舉指定目錄下包括子目錄中所有的包含指定字符串的文件

>>> import os
>>> def searchStr(d,str):
...     for i in os.listdir(d):
...             sd = os.path.join(os.path.abspath(d),i)
...             if str in i:
...                     print(sd)
...             if os.path.isdir(sd):
...                     searchStr(sd,str)
...
>>> searchStr('E:\Python3.6.3\workspace','f')
E:\Python3.6.3\workspace\err_logginginfo.py
E:\Python3.6.3\workspace\first.py
E:\Python3.6.3\workspace\備份\first.py
E:\Python3.6.3\workspace\備份\first_copy.py

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM