在创建副本的同时重命名文件名?
renaming filenames while also creating a copy?
我花了最后 4 个小时试图解决这个问题。我正在从网站下载图像并将它们存储在 Users/Temp 中。我想要做的是,在下载图像时,检查临时文件夹以查看是否已经存在具有相同名称的图像。如果有,则使用 f 字符串和计数器重命名它们,但仍下载并保存它们。
for bmp in bmp_list:
fullfilename = os.path.join(f'{dl_location}', f'{bmp}')
dl_link = url + bmp
urllib.request.urlretrieve(dl_link, fullfilename)
if os.path.isfile(fullfilename):
print('file already exists, renaming.')
os.rename(fullfilename, f'copy{c}-{fullfilename}')
c =+1
else: None
我知道我的代码正在创建文件,然后检查它是否存在,显然它存在,因为我刚刚复制了它,但我被卡住了。
将不胜感激!
编辑:当我 运行 此代码时,我收到错误消息
FileNotFoundError: [Errno 2] No such file or directory: '/Users/Home/Temp/CW/monty-python-(1).bmp' -> 'copy1-/Users/Home/Temp/CW/monty-python-(1).bmp'
问题似乎是您在 绝对路径 前加上了 copy{c}
。请改用后缀:
os.rename(fullfilename, f'{fullfilename}-copy{c}')
此外,在下载之前,您需要重命名现有文件。下载后为时已晚,原来的文件已经没有了。所以在下载步骤之前移动 if
语句。
最后,使用简单后缀的一个缺点是它位于文件扩展名 .bmp
之后。一个简单的补救方法是使用 f'{fullfilename}-copy{c}.bmp' as the new name, with the drawback that there will be
.bmp` 两次。如果这对您来说是个问题,那么您可以做更多的工作,拆分基本名称和扩展名,并使用基本名称以所需格式格式化新名称。
我花了最后 4 个小时试图解决这个问题。我正在从网站下载图像并将它们存储在 Users/Temp 中。我想要做的是,在下载图像时,检查临时文件夹以查看是否已经存在具有相同名称的图像。如果有,则使用 f 字符串和计数器重命名它们,但仍下载并保存它们。
for bmp in bmp_list:
fullfilename = os.path.join(f'{dl_location}', f'{bmp}')
dl_link = url + bmp
urllib.request.urlretrieve(dl_link, fullfilename)
if os.path.isfile(fullfilename):
print('file already exists, renaming.')
os.rename(fullfilename, f'copy{c}-{fullfilename}')
c =+1
else: None
我知道我的代码正在创建文件,然后检查它是否存在,显然它存在,因为我刚刚复制了它,但我被卡住了。 将不胜感激!
编辑:当我 运行 此代码时,我收到错误消息
FileNotFoundError: [Errno 2] No such file or directory: '/Users/Home/Temp/CW/monty-python-(1).bmp' -> 'copy1-/Users/Home/Temp/CW/monty-python-(1).bmp'
问题似乎是您在 绝对路径 前加上了 copy{c}
。请改用后缀:
os.rename(fullfilename, f'{fullfilename}-copy{c}')
此外,在下载之前,您需要重命名现有文件。下载后为时已晚,原来的文件已经没有了。所以在下载步骤之前移动 if
语句。
最后,使用简单后缀的一个缺点是它位于文件扩展名 .bmp
之后。一个简单的补救方法是使用 f'{fullfilename}-copy{c}.bmp' as the new name, with the drawback that there will be
.bmp` 两次。如果这对您来说是个问题,那么您可以做更多的工作,拆分基本名称和扩展名,并使用基本名称以所需格式格式化新名称。