最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3批量移動(dòng)指定文件到指定文件夾方法示例

 更新時(shí)間:2019年09月02日 11:04:32   作者:milletluo  
這篇文章主要給大家介紹了關(guān)于Python3批量移動(dòng)指定文件到指定文件夾的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

引言

某人需求:以某excel中姓名信息為名建立一系列文件夾,分別將四個(gè)文件夾中與人名對(duì)應(yīng)的文件匯總到該人名對(duì)應(yīng)的文件夾中,共近200人,手工處理費(fèi)時(shí)費(fèi)力。

需求分解:

從excel中提取代號(hào)index和姓名信息name
以index_name格式批量建立文件夾namefolder
分別遍歷四個(gè)文件夾及其子文件夾,將其中“文件名filename中包含姓名name”的文檔移動(dòng)到該人對(duì)應(yīng)的新建的文件夾namefolder中

excel內(nèi)容: 


處理前: 

 

處理后: 


功能實(shí)現(xiàn)比較容易,權(quán)當(dāng)記錄。

環(huán)境:Python3.6+macOS10.12.5

代碼

# -*- coding: utf-8 -*-

import os
import shutil
import xlrd
import string

### 創(chuàng)建多層目錄
def mkdirs(path):
 # 去除首位空格
 path = path.strip()
 # 去除尾部 \ 符號(hào)
 path = path.rstrip("\\")

 # 判斷路徑是否存在
 # 存在  True
 # 不存在 False
 isExists = os.path.exists(path)

 # 判斷結(jié)果
 if not isExists:
  # 創(chuàng)建目錄操作函數(shù)
  os.makedirs(path)
  # 如果不存在則創(chuàng)建目錄
  print(path + ' 創(chuàng)建成功')
  return True
 else:
  # 如果目錄存在則不創(chuàng)建,并提示目錄已存在
  print(path + ' 目錄已存在')
  return False

def search_file(path, filename, newpath):
 queue = []
 queue.append(path);
 while len(queue) > 0:
  tmp = queue.pop(0)
  if (os.path.isdir(tmp)):#如果該路徑是文件夾
   for item in os.listdir(tmp):#遍歷該路徑中文件和文件夾
    queue.append(os.path.join(tmp, item))#將所得路徑加入隊(duì)列queue
  elif (os.path.isfile(tmp)):#如果該路徑是文件
   name = os.path.basename(tmp) # 獲取文件名
   dirname = os.path.dirname(tmp) # 獲取文件目錄
   full_path = os.path.join(dirname, name) # 將文件名與文件目錄連接起來(lái),形成完整路徑
   des_path = newpath+'/'+path+'_'+name #目標(biāo)路徑,將該文件夾信息添加進(jìn)最后的文件名中
   if filename in name:#匹配符合條件的文件,也可用if(name.find(filename)!=-1):
    shutil.move(full_path, des_path)#移動(dòng)文件到目標(biāo)路徑(移動(dòng)+重命名)

if __name__ == '__main__':
 #打開(kāi)excel文件
 data=xlrd.open_workbook('名單.xlsx')
 #獲取第一張工作表(通過(guò)索引的方式)
 table=data.sheet_by_index(0)
 #datalist用來(lái)存放數(shù)據(jù)
 datalist_UNIQID=[]
 datalist_NAME=[]
 #將table中第一行的數(shù)據(jù)讀取并添加到data_list中
 datalist_UNIQID.extend(table.col_values(0))
 datalist_NAME.extend(table.col_values(2))
 #foldname = [a+'_'+b for a, b in zip(datalist_UNIQID,datalist_NAME)]
 dir_tjbg='zzz報(bào)告'
 dir_fsgz='xxx證書(shū)'
 dir_hbpx='yyy證書(shū)'
 dir_ykfs='xyz證書(shū)'
 #打印出第一行的全部數(shù)據(jù)
 for index, name in zip(datalist_UNIQID, datalist_NAME):
  foldername=index+'_'+name.strip()
  #print(foldername)
  mkdirs(foldername)
  search_file(dir_tjbg,name.strip(),foldername)
  search_file(dir_fsgz,name.strip(),foldername)
  search_file(dir_hbpx,name.strip(),foldername)
  search_file(dir_ykfs,name.strip(),foldername)

備忘

1. 同步遍歷兩個(gè)list

l1 = [2,2,2,2]
l2 = [3,3,3,3]
prod = [a*b for a, b in zip(l1,l2)]
print prod
# [6, 6, 6, 6]
add = [a+b for a, b in zip(l1,l2)]
print add
# [5, 5, 5, 5]

2. 文件夾操作

import os
import shutil

os.getcwd() # 獲取當(dāng)前工作目錄,非腳本目錄
os.listdir() # 返回指定目錄下的所有文件和目錄,非遞歸
os.remove() # 刪除文件
os.removedirs() #刪除目錄
os.path.isfile() # 檢驗(yàn)給出的路徑是否是一個(gè)文件
os.path.isdir() # 檢驗(yàn)給出的路徑是否是一個(gè)目錄
os.path.isabs() # 判斷是否是絕對(duì)路徑
os.path.exists() # 檢驗(yàn)給出的路徑是否真實(shí)存在
os.path.split() # 返回一個(gè)路徑的目錄名和文件名
os.path.splitext() # 分離文件擴(kuò)展名
os.path.dirname() # 獲取文件路徑名
os.path.basename() # 獲取一個(gè)絕對(duì)路徑下的文件名
os.system() # 運(yùn)行shell命令
os.rename(old,new) # 重命名文件或目錄
os.makedirs(r"c:\python\test") # 創(chuàng)建多級(jí)目錄
os.mkdir("test") # 創(chuàng)建單個(gè)目錄
os.exit() # 終止當(dāng)前進(jìn)程
os.path.getsize(filename) # 獲取文件大小
os.mknod("test.txt") # 創(chuàng)建空文件

shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是文件
shutil.copytree("olddir","newdir") # olddir和newdir都只能是目錄,且newdir必須不存在
shutil.move("oldpos","newpos") # 移動(dòng)文件或目錄
shutil.rmtree("dir") # 刪除目錄,與os.removedirs()相同
os.path.join(“home”, "me", "mywork") # 路徑連接

參考

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

旬阳县| 金湖县| 仁化县| 榆社县| 安徽省| 营山县| 通城县| 广昌县| 龙泉市| 定南县| 高密市| 平潭县| 河南省| 达拉特旗| 临桂县| 郓城县| 三河市| 屯门区| 南投市| 弥渡县| 光山县| 嘉义市| 平塘县| 桐乡市| 枣强县| 山东省| 通榆县| 惠东县| 靖远县| 林周县| 永济市| 鄱阳县| 南川市| 天水市| 乌拉特中旗| 东兰县| 双江| 靖安县| 四会市| 治多县| 通辽市|