Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如果目标路径已经存在,重命名并移动文件?

如果目标路径已经存在,重命名并移动文件?
EN

Stack Overflow用户
提问于 2018-12-03 01:03:12
回答 2查看 159关注 0票数 0

我正在尝试创建一个脚本,将所有图片从我的downloads文件夹移动到我的图片文件夹。我的脚本工作到目前为止(移动文件),除非它试图移动目标文件夹中已经具有相同名称的文件-就像使用printscreen一样。如果printscreen1.png已经存在于图片中,它将不会移动文件。

对于这样的文件,我想要重命名文件并将日期或时间添加到文件名中,然后在不替换原始printscreen的情况下移动它,这样我就可以让这两个和所有的printscreen继续运行下去。

代码语言:javascript
代码运行次数:0
复制
import os
import shutil
import datetime

downloadsb = os.path.join('B:\\Downloads')
pictures = os.path.join('B:\\Pictures')

for f in os.listdir(downloadsb):
    if f.endswith((".jpg", ".gif", ".jpeg", ".png", ".ico", ".psd", ".sfw", ".webp", ".pdd", ".psb", ".bmp", ".rle", ".dib", ".eps", ".iff", ".tdi", ".jpf",
    ".jpx", ".jp2", ".j2c", ".jxk", ".jpc", ".jps", ".mp0", ".pcx", ".pdp", ".raw", ".pxr", ".pns")):
        shutil.move(os.path.join(downloadsb, f), pictures)
        
    if os.path.isfile(f):
                os.rename(f,f + "date")

下面是我的错误消息:

代码语言:javascript
代码运行次数:0
复制
raise Error, "Destination path '%s' already exists" % real_dst
shutil.Error: Destination path 'B:\Pictures\printscreen1.png' already exists

这就是我到目前为止所拥有的,我将感谢任何帮助或建议。谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-12-03 01:29:34

有一个内置库可以检查文件是否是图像。此外,您还需要遍历目录(文件夹)中的文件。像这样的东西应该可以工作(未经过测试):

代码语言:javascript
代码运行次数:0
复制
import os
import shutil
import datetime
import imghdr

downloadsb = os.path.join('B:\\Downloads')
pictures = os.path.join('B:\\Pictures')

files = os.listdir(downloadsb)

for f in files:
    try:
        imghdr.what(f)
        dest_name = f
        if os.path.exists( os.path.join(pictures, dest_name) ):
            dest_name += datetime.datetime.now().strftime('%H%M%S')
        shutil.move(os.path.join(downloadsb, f),
                    os.path.join(pictures, dest_name))

    except Exception as e:
        continue
票数 0
EN

Stack Overflow用户

发布于 2018-12-03 01:29:56

为什么不在搬家前检查一下。类似于下面的内容

注意:如果文件存在,您可以执行不同类型的重命名。我只需将_new附加到扩展中。不完全是你想要的,但这应该会给出一个想法

代码语言:javascript
代码运行次数:0
复制
import os
import shutil
import datetime
import glob

downloadsb = os.path.join('src')
pictures = os.path.join('dst')

for f in glob.glob(downloadsb + '/*'):
    if f.endswith(
        (".jpg", ".gif", ".jpeg", ".png", ".ico", ".psd", ".sfw", ".webp", ".pdd", ".psb", ".bmp",
         ".rle", ".dib", ".eps", ".iff", ".tdi", ".jpf", ".jpx", ".jp2", ".j2c", ".jxk", ".jpc", ".jps",
         ".mp0", ".pcx", ".pdp", ".raw", ".pxr", ".pns")):

        dstFile = os.path.join(pictures, os.path.split(f)[1])
        if os.path.exists(dstFile):
            # Do whatever you want to rename the file here
            shutil.move(f, dstFile + '_new')
        else:
            shutil.move(f, dstFile)

在运行之前

代码语言:javascript
代码运行次数:0
复制
dst:
tmp.jpg

src:
tmp.jpg

运行后

代码语言:javascript
代码运行次数:0
复制
dst:
tmp.jpg  tmp.jpg_new

src:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53586190

复制
相关文章
C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错)
.NET 提供了一个简单的 API 来移动一个文件夹 Directory.Move(string sourceDirName, string destDirName)。不过如果你稍微尝试一下这个 API 就会发现其实相当不实用。
walterlv
2023/10/22
4810
C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错)
linux 文件重命名的命令是什么_linux移动文件并重命名
大家好,又见面了,我是你们的朋友全栈君。 就目前所知道的知识,有两种方法。 一、mv
全栈程序员站长
2022/09/30
5.6K0
使用Python移动和重命名Excel文件
本文将向你展示如何在Python中移动和重命名Excel文件。此方法不仅适用于Excel文件,也适用于任何其他格式的文件,包括.docx、.txt、.pptx,等等。
fanjy
2021/11/17
3.1K0
使用Python移动和重命名Excel文件
python批量移动文件&重命名代码分享
虽然咱是matlab编程类公众号,偶尔学习学习python也是好的。交叉学习、融会贯通、共同进步。如果所学的知识不能够为我带来些许便利,我终将会怀疑其之于我的意义,若是python离我特别远,何为还会
巴山学长
2020/08/14
2.9K1
VBA 文件复制,并判断文件是否存在,存在则报错!
Function 复制文件(ByVal 旧文件路径 As String, ByVal 旧文件名 As String, ByVal 新文件路径 As String, ByVal 新文件名 As String)
办公魔盒
2019/07/22
2.8K0
VBA 文件复制,并判断文件是否存在,存在则报错!
hive 处理已经存在的小文件方案
归档,archive。Hive 具有内置支持,可将现有分区中的文件转换为 Hadoop 存档(HAR),这样一个曾经由 100 个文件组成的分区只能占用约 3 个文件(取决于设置)。
王旭平
2023/03/24
8.8K0
VBA 文件移动和判断文件是否存在
Function 文件移动(ByVal 旧文件路径 As String, ByVal 旧文件名 As String, ByVal 新文件路径 As String, ByVal 新文件名 As String)
办公魔盒
2019/07/22
2.1K0
VBA 文件移动和判断文件是否存在
jsp:include引入jsp文件的时候(如果被包含的文件存在js文件),不要用相对路径
在集成时,我的思路是写一个公共JSP文件,里面包含一些常用的js文件,当然此处我用的就是Jquery插件了。
全栈程序员站长
2022/07/01
2.7K0
一道关于文件批量查找并替换内容并移动文件且将其按规则重命名的面试题
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
8650
Linux中常用的文件复制、移动、重命名命令
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
狼啸风云
2020/06/12
26.5K0
移动并重命名2000个文件,Python,3秒
今天介绍的案例是如何利用Python来自动化移动、修改、重命名文件/夹,这样的操作在日常办公中经常会用到,若能掌握用Python实现将会大大提高效率!
刘早起
2021/02/05
1.6K0
golang 判断文件/路径是否存在、是否为文件夹/文件
golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断:
IT工作者
2022/07/01
2.9K0
linux重命名文件名_linux 文件重命名
https://blog.csdn.net/weixin_33724570/article/details/91909917
全栈程序员站长
2022/09/30
4.1K0
linux重命名文件名_linux 文件重命名
linux批量文件重命名命令_shell重命名文件指令
hello_10_2016-03-17.log hello_4_2016-03-17.log hello_8_2016-03-17.log
全栈程序员站长
2022/10/02
10.7K0
用python的shutil库批量移动文件及批量重命名
背景:老父亲要看乡村爱情,下载的资源都在一个单独的小文件夹中,想把他们移动到单独的大文件夹下,读了官方文档shutil库,尝试用了一下,效果不错,提升了效率,不用我一个一个去挪动了。
易弦
2022/10/28
1.7K0
在Oracle中,如何移动或重命名数据文件?
其实利用OS拷贝也可以联机操作,不关闭数据库,但是只针对可以OFFLINE的数据文件,步骤如下所示:
AiDBA宝典
2023/04/27
1.8K0
在Oracle中,如何移动或重命名数据文件?
C++判断某个路径下的文件是否存在
在Windows系统下判断一个文件是否存在是比较简单的,可以使用Windows的库函数,也可以使用Qt提供的接口。
ccf19881030
2021/04/25
3.9K0
为了方便使用,Jupyter移动到桌面并更改路径。
1、点击[在这里输入你要搜索的内容] 2、点击[Jupyter Notebook] 3、点击[打开文件所在位置] 4、点击[点击Jupyter Notebook] 5、点击[发送到] 6、点击[桌面快捷方式] 7、点击[Jupyter Notebook] 8、按<Win+R>键 9、点击[确定] 10、点击[命令行窗口] 11、按<Enter>键 12、点击[搜索Everything] 13、点击[搜索] 14、点击[.Jupyter]
裴来凡
2022/05/28
3K0
为了方便使用,Jupyter移动到桌面并更改路径。
删除,重命名文件
重命名文件----rename #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> //修改文件名 void REname(char *arr) { int ret=rename("你好世界.txt", arr); if (ret == 0) { printf("修改成功"); } else { printf("修改失败"); } } void test01() { char buf[] = "你好,世界.txt"; REname(b
大忽悠爱学习
2021/03/02
1.7K0
删除,重命名文件
java删除文件,重命名文件
在做项目时,遇到需要对文件做一些删除重命名等操作。基于java语言,保存代码段如下。
全栈程序员站长
2022/08/12
1.8K0

相似问题

如果文件已经存在,则移动并重命名bash

122

批处理-如果文件已经存在,如何重命名和移动文件

14

如果文件已经存在,如何重命名

21

C#移动文件并重命名它,如果它已经存在

42

如果文件已经存在,请重命名它

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文