【问题标题】:How to rename a file with Python?如何用 Python 重命名文件?
【发布时间】:2017-10-06 14:06:46
【问题描述】:

我正在尝试使用 Python 更改文件名,但名称没有改变。 程序必须拍照、保存、复制到服务器、更改复制照片的名称和更改原始照片的名称。 所以,首先我定义了一个变量,它将是一个确切的日期和时间。之后,我拍了一张照片并将其保存为 imagen.jpg 接下来,我将 imagen.jpg 复制到其他路径(服务器路径),并尝试将他的名称更改为我之前定义的变量。但名称没有改变,文件被删除。 之后,我用相同的功能更改了原始照片的名称,并且名称被更改了....我不知道为什么复制的照片不更改他的名字。 代码如下:

import shutil
import picamera
import os
fecha = time.strftime("%c")  # En esta variable se guarda la fecha actual y la hora para renombrar la foto guardada          
camera.capture('/home/pi/Desktop/RaspAlarm/imagen.jpg')
print("Capturando foto")
time.sleep(5)
print("Copiando foto al servidor")
shutil.copy("/home/pi/Desktop/RaspAlarm/imagen.jpg", "/var/www/html/RaspAlarm/Fotos")
time.sleep(1)
os.listdir("/var/www/html/RaspAlarm/Fotos")
os.rename ("/var/www/html/RaspAlarm/Fotos/imagen.jpg", fecha)
print("Cambiando nombre al archivo")
os.rename ("/home/pi/Desktop/RaspAlarm/imagen.jpg", fecha)
time.sleep(1)
print("Foto guardada")

你能帮帮我吗?谢谢

【问题讨论】:

    标签: python copy rename


    【解决方案1】:

    您的目的地名称错误。你基本上是在打电话:

    os.rename("/var/www/html/RaspAlarm/Fotos/imagen.jpg", "Mon May  8 16:15:07 2017")
    

    而你想要的看起来更像

    os.rename("/var/www/html/RaspAlarm/Fotos/imagen.jpg", "/var/www/html/RaspAlarm/Fotos/Mon May  8 16:15:07 2017.jpg")
    

    查看os.rename的文档

    【讨论】:

    • 是的,我知道。但是当我尝试挂起原始照片的名称时,使用相同的功能成功更改了名称。为什么?或者,我怎样才能像您之前所说的那样添加 .jpg 扩展名?
    • @SergioMuñoz 添加一个扩展名,您可以使用os.path.splitext 或仅使用path + fecha + '.jpg' 如果您只处理jpegs。是的,请查看 os.path 库。
    • 好的!我会试试这个。但是很少有原图名字改得很好
    【解决方案2】:

    一开始你的目的地是错误的!你应该写下所有的路径。 然后你应该删除 fecha 变量中的空格:

    fecha = fecha.replace(' ', '')
    os.rename("/var/www/html/RaspAlarm/Fotos/imagen.jpg", "/var/www/html/RaspAlarm/Fotos/{}.jpg".format(fecha))
    

    【讨论】:

    • 感谢您的回答。但为什么原照片改名好呢?如果我使用相同的功能
    • 我不这么认为,os.remove 的工作方式与 Linux 中的 mv 命令完全一样,如果您将目标作为单词而不是路径,它会将文件移动到函数的目录。所以我认为它可能对您有用,因为该功能与原始照片位于同一目录中!
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多