国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 實(shí)現(xiàn)百度網(wǎng)盤(pán)非會(huì)員上傳超過(guò)500個(gè)文件的方法

瀏覽:5日期:2022-06-30 10:15:03
案例故事:

百度網(wǎng)盤(pán)非會(huì)員大量上傳文件,會(huì)彈出:“上傳文件數(shù)量超出500個(gè)現(xiàn)在,開(kāi)通超級(jí)會(huì)員后可繼續(xù)上傳”,其實(shí)是限制拖入500張相片,并非限制上傳500張。

python 實(shí)現(xiàn)百度網(wǎng)盤(pán)非會(huì)員上傳超過(guò)500個(gè)文件的方法

非會(huì)員如何將眾多文件,分割成500一個(gè)的文件夾,不受拖入數(shù)量限制呢?

準(zhǔn)備階段 os.walk()函數(shù),可以樹(shù)形遍歷整個(gè)路徑下的文件夾列表和文件列表 Path(路徑).parent屬性,可以獲取該“路徑”的父路徑 os.path.relpath('D:aaabbbccc',start='D:aaa')函數(shù),可以返回“bbbccc”字符串, 實(shí)現(xiàn)路徑裁剪。 os.sep 可以代表任何路徑分隔符 os.rename()函數(shù),可以實(shí)現(xiàn)移動(dòng)功能 sys.argv[1] 通過(guò)接收“待分割的路徑”參數(shù)的輸入Python面向?qū)ο箢愋问?p># python3.8# coding=utf-8 import osimport sysfrom pathlib import Path class BaiduPanCutter(object): ’’’百度網(wǎng)盤(pán)500個(gè)文件分割器’’’ def __init__(self, root_path, count=500): self.root_path = root_path self.count = count self.folder_file_dict = {} # 文件夾與其文件列表的映射字典 self.get_folders_files() # 獲取該根路徑下的所有文件夾列表和文件列表 def get_folders_files(self): ’’’獲取該根路徑下的所有文件夾列表和文件列表’’’ for folders, _, files in os.walk(self.root_path): self.folder_file_dict[folders] = files def _split(self, arr, count): ’’’分割文件列表,每500算一份’’’ arrs = [] while len(arr) > count: piece = arr[:count] arrs.append(piece) arr = arr[count:] arrs.append(arr) return arrs # 分割文件并放到新的文件去 def cut_file(self): ’’’分割并移動(dòng)到新的文件夾’’’ for each_folder in self.folder_file_dict.keys(): num = 1 # 以500為倍數(shù),這是1倍 # 將文件路徑(摒棄當(dāng)前路徑)轉(zhuǎn)成字符串,用_隔開(kāi) temp_path = os.path.relpath(each_folder, Path(self.root_path).parent) temp_path = temp_path.replace(os.sep, '_') print(temp_path) files_list = self.folder_file_dict[each_folder] file_group = self._split(files_list, self.count) # 按500來(lái)分割 if len(file_group) > 1: # 有超過(guò)500個(gè)的文件列表for each_group in file_group: # 遍歷每500份的文件列表 new_folder = os.path.join(self.root_path, temp_path + '_' + str(num)) # 新路徑 if not os.path.exists(new_folder): os.mkdir(new_folder) for each_file in each_group: old_file = os.path.join(each_folder, each_file) new_file = os.path.join(new_folder, each_file) print('正在將%s 移動(dòng)到 %s' % (old_file, new_file)) os.rename(old_file, new_file) num = num + 1 else: # 無(wú)超過(guò)500個(gè)的文件列表new_folder = os.path.join(self.root_path, temp_path) # 新路徑if not os.path.exists(new_folder): os.mkdir(new_folder)for each_file in file_group[0]: # old_file = os.path.join(each_folder, each_file) new_file = os.path.join(new_folder, each_file) print('正在將%s 移動(dòng)到 %s' % (old_file, new_file)) os.rename(old_file, new_file) if __name__ == ’__main__’: try: arg1 = sys.argv[1] if os.path.isdir(arg1): b_obj = BaiduPanCutter(arg1, 500) b_obj.cut_file() else: print('非文件夾,運(yùn)行方法:python %s 路徑文件夾' % sys.argv[0]) except IndexError: print('未輸入待分割的路徑文件夾, 運(yùn)行方法:python %s 路徑文件夾' % sys.argv[0]) os.system('pause')運(yùn)行方式與效果

運(yùn)行方式:將以上代碼命名為:baidu_pan_500_cutter.py通過(guò)命令:python baidu_pan_500_cutter.py D:DCIMPhotos 運(yùn)行

python 實(shí)現(xiàn)百度網(wǎng)盤(pán)非會(huì)員上傳超過(guò)500個(gè)文件的方法

每個(gè)文件夾都不會(huì)超過(guò)500個(gè)文件,后續(xù)將一個(gè)一個(gè)的文件夾拖入百度網(wǎng)盤(pán)(電腦客戶端)即可了。

備注信息 本腳本不涉及任何的刪除文件或文件夾的操作,不會(huì)出現(xiàn)文件丟失情況。 兼容非英文的文件夾或文件分割操作。

以上就是python 實(shí)現(xiàn)百度網(wǎng)盤(pán)非會(huì)員上傳超過(guò)500個(gè)文件的詳細(xì)內(nèi)容,更多關(guān)于python 百度網(wǎng)盤(pán)上傳超過(guò)500個(gè)文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: 百度 Python
相關(guān)文章:
主站蜘蛛池模板: 灵丘县| 象州县| 永清县| 铜陵市| 青铜峡市| 屏东市| 长丰县| 凉山| 昭觉县| 衢州市| 云林县| 沙湾县| 张家口市| 高密市| 陇西县| 海城市| 连江县| 丰县| 本溪| 灵璧县| 镇安县| 乐昌市| 泰安市| 博乐市| 安义县| 仙桃市| 泰宁县| 大洼县| 安平县| 沐川县| 文安县| 平利县| 大化| 正蓝旗| 资溪县| 加查县| 敦化市| 英山县| 乌海市| 平湖市| 庐江县|