2017-05-08 19 views
0

私はPythonを使ってファイルの名前を変更しようとしていますが、名前は変更されません。 プログラムは写真を撮って保存し、サーバーにコピーし、コピーした写真の名前を変更し、元の写真の名前を変更する必要があります。 まず、正確な日付と時刻になる変数を定義します。その後、写真を撮ってimagen.jpgのように保存します 次に、imagen.jpgを別のパス(サーバーパス)にコピーし、前に定義した変数に名前を変更してみます。しかし、名前は変更されず、ファイルは削除されます。 その後、私は同じ機能を持つ元の写真の名前を変更し、名前が変更されて....私はコピーされた写真が彼の名前を変更しない理由を知りません。 コード:Pythonでファイルの名前を変更する方法は?

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

お手伝いできますか?ありがとうございます

答えて

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

+0

はいわかっています。しかし、元の写真の名前を変更しようとすると、同じ機能を使って名前が正常に変更されます。どうして?または、前に述べたように.jpg拡張子を追加するにはどうすればよいですか? –

+0

@SergioMuñozに拡張子を追加するには、[os.path.splitext](https://docs.python.org/2/library/os.path.html#os.path.splitext)または 'path + fecha + jpegのみを扱っている場合は+ '.jpg'となります。そして、はい、[os.path](https://docs.python.org/2/library/os.path.html)ライブラリをチェックしてください。 – teivaz

+0

私はこれを試してみる。しかし、元の写真で名前がよく変わっていることはまれです。 –

1

のためのマニュアルを確認してくださいね!あなたはすべての道を書くべきです。 次に、fecha変数の空白を削除する必要があります。

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

ありがとうございます。しかし元の写真がなぜ彼の名前をよく変えたのですか?私が同じ機能を使用している場合 –

+0

os.removeはLinuxでmvコマンドと全く同じように動作しません。宛先をパスではなく単語として指定すると、ファイルを関数のディレクトリに移動します。だから、元の写真と同じディレクトリにあるので、おそらくあなたのために働くと思う! –

関連する問題