os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])python
root 所指的是當前正在遍歷的這個文件夾的自己的地址shell
dirs 是一個 list ,內容是該文件夾中全部的目錄的名字(不包括子目錄)
app
files 一樣是 list , 內容是該文件夾中全部的文件(不包括子目錄)函數
#!/usr/bin/ python # walk()基本使用,輸出基礎遍歷的各個結果及形式。 import os filedir = "/home/dsh/walk_test/" def walk_1(): filedir = "/home/dsh/walk_test/" for root,dirs,files in os.walk(filedir): print(root) print(dirs) print(files) print('***************************') #os.system('pause') walk_1()
#!/usr/bin/ python #walk()基本使用,循環輸出各級目錄名稱。 import os def walk_test(): filedir = "/home/dsh/wall_test/" for root,dirs,files in os.walk(filedir): for dirs_list in dirs: print(dirs_list) print('************') #print("###############") walk_test()
#!/usr/bin/ python # walk()基本使用,輸出各級目錄下的文件的名稱。 import os def walk_test(): filedir = "/home/dsh/wall_test/" for root,dirs,files in os.walk(filedir): for files_list in files: print(files_list) print("##########") walk_test()
#!/usr/bin/ python # walk()基本使用,輸出各級目錄,及目錄下的文件的名稱(帶有路徑)。 import os import shutil def walk_test(): filedir = "/home/dsh/wall_test/" for root,dirs,files in os.walk(filedir): for dir_list in dirs: print(os.path.join(root,dir_list)) for files_list in files: print(os.path.join(root,files_list)) print("##########") walk_test()
需求:複製 指定分機號碼目錄 到 指定文件夾spa
以下圖,分機號碼語音文件目錄存儲結構以下:excel
根據需求,須要把指定的分機號碼數據,存入的list中,以便用來比對是不是目標數據code
# -*- coding:utf-8 -*- #讀取excel數據,存入list。 import xlrd path_file = "/home/dsh/wall_test/src/123.xlsx" def read_excel_to_list(path_to_file): my_list = [] file_name = path_to_file #關聯帶讀取的excel文件,最好使用全路徑 book_read = xlrd.open_workbook(file_name) #打開文件,建立book對象 sheet1_read = book_read.sheet_by_index(0) #使用book對象,獲取工做簿對象 nrows_read = sheet1_read.nrows #獲取sheet1工做簿的總行數 #ncols_read = sheet1_read.ncols #獲取sheet1工做薄中的總列數 #print (nrows_read) for i in range(nrows_read): cell_value = sheet1_read.cell_value(i,0) cell_str = str(cell_value).split('.')[0] #print(cell_str,end='\n') my_list.append(cell_str) return my_list my_List = read_excel_to_list(path_file) if "57939176" in my_List: print("ok") else: print('false') #print(my_List)
#案例需求:把voice目錄及其下各個子目錄的 指定目錄(號碼)下的文件,拷貝到其餘指定目錄。 # import os import shutil import xlrd path_file = "/home/dsh/wall_test/src/123.xlsx" path_source = "/var/spool/voice/voice/" #path_source = "/home/dsh/walk_test/" path_dest = "/var/spool/voice/2018/" def read_excel_to_list(path_to_file): my_list = [] file_name = path_to_file #關聯帶讀取的excel文件,最好使用全路徑 book_read = xlrd.open_workbook(file_name) #打開文件,建立book對象 sheet1_read = book_read.sheet_by_index(0) #使用book對象,獲取工做簿對象 nrows_read = sheet1_read.nrows #獲取sheet1工做簿的總行數 #ncols_read = sheet1_read.ncols #獲取sheet1工做薄中的總列數 #print (nrows_read) for i in range(nrows_read): cell_value = sheet1_read.cell_value(i,0) cell_str = str(cell_value).split('.')[0] #print(cell_str,end='\n') my_list.append(cell_str) return my_list my_List = read_excel_to_list(path_file) for root,dirs,files in os.walk(path_source): #關聯待遍歷的指定目錄 for dir_list in dirs: #遍歷目錄集合 if dir_list in my_List: os.system("mkdir -p "+path_dest+dir_list) source_Dir = os.path.join(root,dir_list) #生成目標目錄的全路徑 #shutil.copytree(source_Dir,path_dest+dir_list) #使用shutil.copytree方法複製整個目錄 os.system("cp "+source_Dir+"/* "+path_dest+dir_list) #使用os.system方法執行shell命令 #print(source_Dir) else: continue print("job is done")
需求描述:遍歷指定目錄,把其及其子目錄下全部文件,移動到指定文件內。對象
代碼實現:blog
#案例需求:把2019目錄及其下各個子目錄下的全部文件(僅文件),拷貝到指定目錄2018中。 # import os import shutil import xlrd path_file = "/home/dsh/wall_test/src/123.xlsx" path_source = "/var/spool/voice/2019/" #path_source = "/home/dsh/walk_test/" path_dest = "/var/spool/voice/2018/" ''' def read_excel_to_list(path_to_file): my_list = [] file_name = path_to_file #關聯帶讀取的excel文件,最好使用全路徑 book_read = xlrd.open_workbook(file_name) #打開文件,建立book對象 sheet1_read = book_read.sheet_by_index(0) #使用book對象,獲取工做簿對象 nrows_read = sheet1_read.nrows #獲取sheet1工做簿的總行數 #ncols_read = sheet1_read.ncols #獲取sheet1工做薄中的總列數 #print (nrows_read) for i in range(nrows_read): cell_value = sheet1_read.cell_value(i,0) cell_str = str(cell_value).split('.')[0] #print(cell_str,end='\n') my_list.append(cell_str) return my_list my_List = read_excel_to_list(path_file) ''' for root,dirs,files in os.walk(path_source): #關聯待遍歷的指定目錄 for file_list in files: #遍歷文件集合 #os.system("mkdir -p "+path_dest+dir_list) source_filedir = os.path.join(root,file_list) #生成目標文件的全路徑 shutil.move(source_filedir,path_dest) #使用shutil.move方法移動文件到指定目錄 #os.system("cp "+source_Dir+"/* "+path_dest) #使用os.system方法執行shell命令 #print(source_Dir) print("job is done")