如何用Python重命名文件?

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

我正在使用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")

你能帮我吗?谢谢你

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

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("/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")

首先,请查看文档,了解您的目的地是错误的!你应该写下所有的路径。 然后应删除fecha变量中的空格:

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

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

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

是的,我知道。但是当我尝试更改原始照片的名称时,使用相同的功能成功地更改了名称。为什么?或者,我如何才能像您之前所说的那样添加.jpg扩展名?@SergioMuñoz添加一个您可以使用的扩展名,或者如果您只处理JPEG,只需
path+fecha+'.jpg'
。是的,去图书馆看看。好的!我试试这个。但是很少见的是,在原来的照片中,这个名字被改变了。是的,我知道。但是当我尝试更改原始照片的名称时,使用相同的功能成功地更改了名称。为什么?或者,我如何才能像您之前所说的那样添加.jpg扩展名?@SergioMuñoz添加一个您可以使用的扩展名,或者如果您只处理JPEG,只需
path+fecha+'.jpg'
。是的,去图书馆看看。好的!我试试这个。但是很少见的是,在原来的照片中,名字被改了。谢谢你的回答。但是为什么原来的照片很好地改变了他的名字呢?如果我使用的是同一个函数,我不这么认为,os.remove的工作方式与Linux中的mv命令完全相同。如果您将destination作为单词而不是路径,它会将文件移动到函数的目录中。因此,我认为它可能对您有效,因为该函数与原始照片位于同一目录中!谢谢你的回答。但是为什么原来的照片很好地改变了他的名字呢?如果我使用的是同一个函数,我不这么认为,os.remove的工作方式与Linux中的mv命令完全相同。如果您将destination作为单词而不是路径,它会将文件移动到函数的目录中。因此,我认为它可能对您有效,因为该函数与原始照片位于同一目录中!