使用os Rename基于python中的变量重命名文件

2024-04-19 18:22:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试如何将下载的文件从NWZV1WB重命名为HENRY。{wgi>现在下载。在

重要提示:文件末尾总是有数字 NWZV1WB-1.jpgNWZV1WB-2.jpgNWZV1WB-3.jpg

我的代码如下:(Henry yuan-帮助我)

import wget
import os
import multiprocessing


def run_process(url, output_path):
    wget.download(url, out=output_path)


if __name__ == '__main__':
    cpus = multiprocessing.cpu_count()
    max_pool_size = 4
    pool = multiprocessing.Pool(cpus if cpus < max_pool_size else max_pool_size)
    base_dir = os.path.dirname(os.path.abspath(__file__))
    prefix_list = ["NWZV1WB"]
    folder_name_list = ["HENRY"]  
    download_list = []
    name_list = list(range(1, 7))
    for index, prefix in enumerate(prefix_list):  # return index and item
        folder_name = folder_name_list[index]  # changed
        path = os.path.join(base_dir)
        if not os.path.exists(path):
            os.mkdir(path)
        if not os.path.isdir(path):
            exit()
        for name in name_list:
            download_list.append(['https://example.com/{p}-{n}.jpg'.format(n=name, p=prefix), path])

    for url, path in download_list: 
        pool.apply_async(run_process, args=(url, path, ))
    pool.close()
    pool.join()

Tags: pathnameimporturlprefixifosdownload
2条回答

罪魁祸首是这样的:

path = os.path.join(base_dir)

正如您在source code中看到的那样,只有一个参数联接方法简单地返回它(这可能不是您想要的)。在

^{pr2}$

Cody已经为您提供了一个答案,我将使用python3.6+f-strings使其更简洁。在

for name in name_list:
    file_path = os.path.join(base_dir, f'{folder_name}-{name}.jpg')
    download_list.append([f'https://example.com/{prefix}-{name}.jpg', file_path])

你的问题有点让人困惑,但我想我是通过评论来拼凑出你想做的事情。目前您的输出是:

Old name:      New name:
NWZV1WB-1.jpg  NWZV1WB-1.jpg

Desired output is:
NWZV1WB-1.jpg  HENRY-1.jpg

您的新文件名放入下载列表中的path变量中。试试这个:

^{pr2}$

相关问题 更多 >