如何将原始文件放在一个目录中,将名称随机化为实际文件,并在不覆盖的情况下移动它们

问题描述 投票:0回答:1

我正在努力获取一周内每日电子邮件列表文件的名称,并将下周的文件名称/日期随机化,以便在一周的同一天不会联系到它们。我一直在目录中使用 random.choice() 将文件名更改为原始文件夹中现有的文件名之一,并将其移动到新文件夹,但是当我到达第三个或第四个文件时,它要么覆盖或完全停止。

import os
import random
import shutil

def shuffle_and_move_files(source_folder, destination_folder):
    if not os.path.exists(source_folder):
        print(f"Source folder '{source_folder}' does not exist.")
        return

    if not os.path.exists(destination_folder):
        os.makedirs(destination_folder)

    files_list = os.listdir(source_folder)
    random.shuffle(files_list)

    for filename in files_list:
        source_path = os.path.join(source_folder, filename)
        if os.path.isfile(source_path):

            random_name = random.choice(file_list)
            
            destination_path = os.path.join(destination_folder, random_name)
            
            shutil.move(source_path, destination_path)
            
            print(f"Moved '{filename}' to '{random_name}'")
python list random file-rename
1个回答
0
投票

这是您可能要求的代码:

import os
import requests

def create_folder(name):
  if not os.path.exists(name):
      os.makedirs(name)

def download_image(url, folder_name):
  response = requests.get(url)
  if response.status_code == 200:
      image_name = url.split('/')[-1]
      with open(os.path.join(folder_name, image_name), 'wb') as f:
          f.write(response.content)
      print(f"Image '{image_name}' downloaded and saved in '{folder_name}' folder.")
  else:
      print(f"Failed to download image from {url}")

def main():
  # Replace with your Pinterest image URLs
  image_urls = [
      'https://example.com/image1.jpg',
      'https://example.com/image2.jpg',
      # Add more image URLs here
  ]

  for url in image_urls:
      folder_name = url.split('/')[-2]  # Assuming Pinterest URL format
      create_folder(folder_name)
      download_image(url, folder_name)

if __name__ == "__main__":
  main()
© www.soinside.com 2019 - 2024. All rights reserved.