os模組是對檔案、檔案路徑的乙個處理模組
1.判斷乙個檔案、路勁是否存在:
os.path.exists(path)
返回乙個布林量,存在則返回1,否則則返回0。
2.新建乙個資料夾:
os.makedirs(path)
#path是乙個路徑,包括你的檔名
3.os.walk() 方法是乙個簡單易用的檔案、目錄遍歷器,可以幫助我們高效的處理檔案、目錄方面的事情。
for path , sub_dirs , files in os.walk(old_path)
:#資料夾下三層檔案,**資料夾的路徑
比如 path = 『g:\研究生課程檔案\資料集\血細胞影象』
但是實際整個路徑是這樣的』g:\研究生課程檔案\資料集\血細胞影象\一級資料夾\1.jpg』
這個時候os.walk返回的path , sub_dirs , files分別是什麼:
path是old_path這個路徑: 『g:\研究生課程檔案\資料集\血細胞影象』
files :下下層資料夾的路徑,這裡可以看到已經沒有資料夾了。所有這裡的值返回
4.路徑拼接,講幾個路徑拼接起來
os.path.join(path1,path2)
5.返回指定的資料夾包含的檔案或資料夾的名字的列表
os.listdir(path)
返回path這個目錄下的檔案、或資料夾的名字的列表
比如: 『g:\研究生課程檔案\資料集\血細胞影象\一級資料夾\1.jpg』
os.listdir(『g:\研究生課程檔案\資料集\血細胞影象\一級資料夾』)
返回:1.jpg
os.listdir(『g:\研究生課程檔案\資料集\血細胞影象』)
返回:一級資料夾
返回的是列表
6.拷貝檔案,用到shutil這個模組
shutil.copy(path1,path2)
從path1拷貝到path2
7資料集的切分
把原先的**打亂,之後再按比例分割
path =
'g:\研究生課程檔案\資料集\血細胞影象'
defset_split
(old_path)
: new_path =
'g:\deep_learming\pytorch\data\cell_set'
if os.path.exists(old_path)==1
:#資料夾存在,則新建乙個新的資料夾
os.makedirs(new_path)
#新建乙個資料夾
else
:print
('資料夾不存在!'
)return
1for path , sub_dirs , files in os.walk(old_path)
:#資料夾下三層檔案,**資料夾的路徑
for new_sub_dir in sub_dirs:
filenames = os.listdir(os.path.join(path,new_sub_dir)
)#filmenames 這時就是每個二級檔案下 ,每張**的名字
filenames =
list
(filter
(lambda x:x.endswith(
'.png'
), filenames)
)#把flimnames = x ,此時以.png結尾的檔案通過過濾器 ,filter語法,後接函式還有序列 第乙個為判斷函式,第二個為序列
# random.shuffle(filenames)
#把序列中所有元素,隨機排序 得到乙個打亂了的列表
for i in
range
(len
(filenames)):
if i < math.floor(
0.6*
len(filenames)):
#math.floor 向下取整
sub_path = os.path.join(new_path ,
'train_set'
,new_sub_dir)
#訓練集
elif i 0.8*
len(filenames)):
sub_path = os.path.join(new_path ,
'val_set'
, new_sub_dir)
#驗證集
else
: sub_path = os.path.join(new_path,
'test_set'
, new_sub_dir)
#測試集
if os.path.exists(sub_path)==0
:#不存在時
os.makedirs(sub_path)
#新建乙個資料夾
shutil.copy(os.path.join(path, new_sub_dir,filenames[i]
), os.path.join(sub_path , filenames[i]))
#拷貝 從第乙個路徑拷貝到第二個路徑下
經過這樣就可以將原本的資料集,切割成乙個訓練集、乙個驗證集、乙個測試集了。 檔案OS模組
檔案os模組 開啟檔案open file open file name路徑,訪問模式 r 以唯讀的方式開啟 rb 以二進位制的方式開啟乙個檔案用於唯讀 w 開啟乙個檔案只用於寫入 a 追加 在當前路徑下建立乙個文字檔案 file1 open 1.txt w 注意 對檔案操作完後,一定要記得關閉檔案,...
python模組 OS模組
bin env python coding utf 8 import os print os.name 輸出主機平台 print os.getcwd 輸出當前目錄 print os.listdir os.getcwd 輸出當前目錄的檔案 橫向 for i in os.listdir os.getcw...
python 模組 OS模組
print os.getcwd 輸出 e python workspace 原來 print os.getcwd 輸出 e python workspace 返回上級目錄 os.chdir os.getcwd 輸出 e python 更改 os.chdir r e print os.getcwd 輸...