python 바 이 두 네트워크 비 회원 이 500 개가 넘 는 파일 을 업로드 하 는 방법
바 이 두 네트워크 는 비 회원 이 파일 을 대량으로 업로드 하면"업로드 파일 수가 500 개 를 넘 으 면 현재 슈퍼 회원 이 개통 되면 계속 업로드 할 수 있 습 니 다"라 고 팝 업 할 수 있 습 니 다.사실은 500 장의 사진 을 끌 어 들 이 는 것 을 제한 하 는 것 이지 500 장의 업로드 가 제한 되 는 것 이 아 닙 니 다.
비 회원 은 어떻게 많은 파일 을 500 개의 폴 더 로 나 누 어 끌 어 들 이 는 수량 제한 을 받 지 않 습 니까?
준비 단계
# 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")
실행 방식 및 효과실행 방식:상기 코드 를 다음 과 같이 명명 합 니 다:baidupan_500_cutter.py
통과 명령:python baidupan_500_cutter.py D:\DCIM\사진 실행
모든 폴 더 는 500 개의 파일 을 초과 하지 않 습 니 다.다음 에 하나의 폴 더 를 바 이 두 네트워크(컴퓨터 클 라 이언 트)에 끌 어 다 놓 으 면 됩 니 다.
비고 정보
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.