91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用python怎么實現百度網盤非會員上傳超過500個文件

發布時間:2021-01-08 16:12:32 來源:億速云 閱讀:326 作者:Leah 欄目:開發技術

這篇文章給大家介紹利用python怎么實現百度網盤非會員上傳超過500個文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

準備階段

  • os.walk()函數,可以樹形遍歷整個路徑下的文件夾列表和文件列表

  • Path(路徑).parent屬性,可以獲取該“路徑”的父路徑

  • os.path.relpath("D:\aaa\bbb\ccc",start="D:\aaa")函數,可以返回“bbb\ccc”字符串, 實現路徑裁剪。

  • os.sep 可以代表任何路徑分隔符

  • os.rename()函數,可以實現移動功能

  • sys.argv[1] 通過接收“待分割的路徑”參數的輸入

Python面向對象類形式

# python3.8
# coding=utf-8
 
import os
import sys
from pathlib import Path
 
 
class BaiduPanCutter(object):
  '''百度網盤500個文件分割器'''
 
  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):
    '''分割并移動到新的文件夾'''
    for each_folder in self.folder_file_dict.keys():
      num = 1 # 以500為倍數,這是1倍
 
      # 將文件路徑(摒棄當前路徑)轉成字符串,用_隔開
      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來分割
 
      if len(file_group) > 1: # 有超過500個的文件列表
        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 移動到 %s" % (old_file, new_file))
            os.rename(old_file, new_file)
          num = num + 1
      else: # 無超過500個的文件列表
        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 移動到 %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("非文件夾,運行方法:python %s 路徑文件夾" % sys.argv[0])
  except IndexError:
    print("未輸入待分割的路徑文件夾, 運行方法:python %s 路徑文件夾" % sys.argv[0])
  os.system("pause")

運行方式與效果

運行方式:將以上代碼命名為:baidu_pan_500_cutter.py
通過命令:python baidu_pan_500_cutter.py D:\DCIM\Photos 運行

利用python怎么實現百度網盤非會員上傳超過500個文件

每個文件夾都不會超過500個文件,后續將一個一個的文件夾拖入百度網盤(電腦客戶端)即可了。

備注信息

  • 本腳本不涉及任何的刪除文件或文件夾的操作,不會出現文件丟失情況。

  • 兼容非英文的文件夾或文件分割操作。

關于利用python怎么實現百度網盤非會員上傳超過500個文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸水县| 乐山市| 松阳县| 江达县| 石河子市| 营口市| 北票市| 永清县| 阿瓦提县| 综艺| 和平县| 会宁县| 华阴市| 安福县| 北川| 修武县| 肇源县| 海晏县| 湘潭县| 健康| 孝昌县| 黄陵县| 依安县| 瓮安县| 阜新市| 福建省| 平昌县| 河曲县| 山东省| 美姑县| 台东市| 宿迁市| 兴城市| 股票| 延长县| 历史| 泰顺县| 建湖县| 平度市| 鹿泉市| 筠连县|