檔名命名方式如圖,是數字序號開頭,但是中間有些檔案刪掉了,序號不連續,這裡將序號連續起來,總的檔案量有40w+,故使用多程序
:#遍歷資料夾下所有
result=
#maindir是當前搜尋的目錄 subdir是當前目錄下的資料夾名 file是目錄下檔名
for maindir,subdir,file_name_list in os.walk(pathfolder)
:for filename in file_name_list:
apath=os.path.join(maindir,filename)
ext=os.path.splitext(apath)[1
]#返回副檔名
if ext in
filter
:return result
defchangname
(filepath,changenum)
: filename=os.path.basename(filepath)
dirname=os.path.dirname(filepath)
pattern = re.
compile
(r'\d+')if
len(pattern.findall(filepath))!=
0:numinfilename=
str(
int(pattern.findall(filename)[0
])-changenum)
newfilename=pattern.sub(numinfilename,filename)
os.rename(filepath,os.path.join(dirname,newfilename)
(' is changed as '
.format
(newfilename,filename)
)def
changenamebylist
(filelist,changnum)
('filelist len is:{}'
.format
(len
(filelist)))
for filename in filelist:
changname(filename,changnum)
(filename,
' is done!'
)if __name__ ==
'__main__'
: allfilepath=getallfilepath(r'e:\numberdata\4'
) n_total=
len(allfilepath)
n_process=
8#8執行緒
#每段子列表長度
length=
float
(n_total)
/float
(n_process)
indices=
[int
(round
(i*length)
)for i in
range
(n_process+1)
] sublists=
[allfilepath[indices[i]
:indices[i+1]
]for i in
range
(n_process)
]#生成程序池
p=pool(n_process)
for i in sublists:
("sublist len is {}"
.format
(len
(i))
)(i,
161130))
p.close(
) p.join(
)多程序下python vscode終端debug不報錯 注意可能潛在的bug
os.rename()無法將檔案命名成已經存在的檔案,否則會報錯
Python 多程序批量管理主機
場景分析 1.運維場景新增物理機機器 需要進行登入機器進行環境標準化 2.例項 1.安裝相關支援包 pip3 install pycrypto pip3.6 install paramiko 2.遠端執行命令示例 usr bin env python36 from multiprocessing i...
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...
python多程序 Python多程序實踐
建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...