我花了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}
。改用后缀:另外,您需要在下载之前重命名现有文件。下载太晚后,原来的文件已经不见了。所以把
if
语句移到下载步骤之前。你知道吗最后,使用简单后缀的缺点是它位于文件扩展名
.bmp
之后。一个简单的补救方法是使用f'{fullfilename}-copy{c}.bmp' as the new name, with the drawback that there will be
.bmp`两次。如果这对您来说是个问题,那么您可以做更多的工作,拆分基名称和扩展名,并使用基名称将新名称格式化为所需的格式。你知道吗相关问题 更多 >
编程相关推荐