python3 目錄操作
常見的目錄操作:
顯示當前目錄
切換目錄
新建、刪除目錄、移動、複製
顯示目錄內容
判斷目錄、檔案是否存在
目錄操作常用的函式如下:
os.listdir() # 列出目錄下的內容
os.getcwd() # 顯示當前工作路徑
os.chdir() # 切換工作目錄
os.mkdir() # 新建目錄
os.path.exists() # 判斷目錄是否存在
os.path.isdir() # 判斷是否是目錄
示例**1:
#!/usr/bin/python3
import os
test_path = r'd:\\python'
print(os.listdir(test_path))
輸出內容為乙個列表,由於內容太多這裡暫不貼出了
示例**2:
#!/usr/bin/python3
import os
print(os.getcwd()) # 獲取當前工作目錄
os.chdir('..') # 切換目錄
print(os.getcwd())
os.mkdir('testdir') #建立路徑
print(os.listdir())
輸出:'d:\python\jupyter'
'd:\python'
['.ipynb_checkpoints',
'bak',
'jupyter',
'project',
'test.txt',
'testdir',
'untitled.ipynb',
路徑就是一條字串
左右斜線
os.path.join()
os.path.exists()
os.path.isdir()
示例**:
#!/usr/bin/python3
import os
url1 = os.path.join('a', 'b') # 路徑拼接
print(url1)
print(os.path.exists(r'd:\python')) # 判斷路徑存不存在
print(os.path.isdir(r'd:\python')) # 判斷是否是路徑
輸出:'a\b'
true
true
相對路徑與絕對路徑
os.path.abspath()
os.path.isabs()
os.path.relpath()
示例**:
#!/usr/bin/python3
import os
url1 = os.path.abspath('.') # 得到.的絕對路徑
print(url1)
print(os.path.isabs('.')) # 判斷是否是絕對路徑
url2 = os.path.relpath('testdir', 'd:\python\testdir') # 得到testdir的相對路徑
print(url2)
輸出:'d:\python'
false
'..\python\testdir'
命名管理
路徑各級名稱
path.split(os.path.sep) 前邊的path是指的是乙個變數
os.path.basename()
os.path.dirname()
刪除檔案shutil模組
os.unlink
shutil.rmtree(path)
複製、移動
copy
copytree
move
示例**1:
#!/usr/bin/python3
import os
dirname = r'd:\python\testdir'
print(os.path.sep) # 顯示路徑分隔符
namelist = dirname.split(os.path.sep)
print(namelist)
namelist1 = os.path.split(dirname) # 用最後的乙個分隔符分開
print(namelist1)
filename = os.path.splitext(r'd:\python\xx.py') # 能取到目錄下檔案的字尾名
print(filename)
urlname = os.path.basename(dirname) # 找到最後乙個目錄的名字
print(urlname)
filename1 = os.path.basename(r'd:\python\xx.txt') # 還可以取到檔名
print(filename1)
urlname1 = os.path.dirname(path) # 取除最後乙個目錄之前的部分
print(urlname1)
輸出:['d:', 'python', 'testdir']
('d:\python', 'testdir')
('d:\python\*', '.py')
'testdir'
'xx.txt'
'd:\python'
示例**2:
#!/usr/bin/python3
import os
import shutil
os.unlink(r'd:\python\xx.txt') # 刪除檔案xx.txt
shutil.rmtree('testdir') # 刪除testdir目錄
shutil.copytree('./test', './test1') # 複製目錄
shutil.copy('./ss.txt', './ss1.txt') # 複製檔案
shutil.move('./ss1.txt', 'ss2.txt') # 移動(重新命名)檔案
只要我想要的檔案格式
檔案屬性
os.path.getsize()
os.path.isfile()
os.stat()
字尾名split
[-3:]
reendswith
示例**1:
#!/usr/bin/python3
import os
filename = r'd:\python\test.py'
os.path.getsize(filename)/1024 # 檢視檔案大小,以位元組為單位
dirname = r'd:\python' # 獲取目錄的大小
os.path.getsize(dirname)/1024
os.path.isfile(filename) # 判斷是否為檔案
os.stat(filename) # 檢視檔案屬性
filename[-3:] # 找字尾名,不通用
os.path.splitext(filename) # 取字尾名
filename.endswith('.py') # 是否以.py結尾
示例**2:
#!/usr/bin/python3
import os
import re
# 以正規表示式取字尾名
filename = r'd:\python\test.py'
os.chdir('d:/python')
re_filename = re.compile('(.*py$)')
name = re_filename.match(filename).group()
print(name)
# os.walk 遍歷目錄,找到對應.py的字尾名
for root, dirs, files in os.walk(r'd:\python'):
for name in files:
file = os.path.join(root,name)
if re_filename.match(file):
print(name)
壓縮備份檔案
使用zipfile
建立壓縮檔案
檢視資訊
解壓縮示例**:
#!/usr/bin/python3
import os
import zipfile
os.chdir('test')
my_zip = zipfile.zipfile('bak.zip', 'w') # 建立乙個bak.zip
my_zip.write('ss.txt', compress_type=zipfile.zip_deflated) # 向bak.zip中新增檔案
my_zip.write('ss2.txt', compress_type=zipfile.zip_deflated) # 新增檔案
my_zip.close() # 關閉bak.zip檔案
# 檢視
aa = zipfile.zipfile('bak.zip')
aa.namelist() #檢視壓縮檔案中的內容
aa.getinfo('ss.txt') # 檢視壓縮檔案中內容的屬性
aa.close()
# 解壓縮
xx = zipfile.zipfile('bak1.zip')
xx.extractall('../test1') # 解壓到上一級目錄
xx.close()
python 進入目錄 Python 目錄操作
注意之前要import os 1 獲得當前路徑 在python中可以使用os.getcwd 函式獲得當前的路徑。其原型如下所示。os.getcwd 該函式不需要傳遞引數,它返回當前的目錄。需要說明的是,當前目錄並不是指指令碼所在的目錄,而是所執行指令碼的目錄。例如,在pythonwin中輸入如下指令...
python 目錄操作
1 獲得當前路徑 在python中可以使用os.getcwd 函式獲得當前的路徑。其原型如下所示。os.getcwd 該函式不需要傳遞引數,它返回當前的目錄。需要說明的是,當前目錄並不是指指令碼所在的目錄,而是所執行指令碼的目錄。例如,在pythonwin中輸入如下指令碼。import os pri...
python 目錄操作
首先,匯入os模組。import os 獲取當前目錄 os.getcwd 建立目錄 os.mkdir 列出目錄下檔案 os.listdir path os.listdir 列出當前目錄。os.listdir 列出根目錄。判斷目錄下子項是檔案還是目錄。for item in os.listdir if...