2012-07-05 18 views
33

ftplib'u kullanarak FTP üzerinden dosya yükleyen bir python betiğim var.Bir dosyanın son değiştirilme zamanını python'dan nasıl ayarlayabilirim?

Bulunduğum indir kodu sadece ftp lib docs örnek gibi görünür:

ftp.retrbinary('RETR README', open('README', 'wb').write) 

Şimdi FTP üzerinden indirilen dosya üzerinde dosyayla aynı son değişiklik zamanı olması gerekir bir şartı var FTP sunucusunun kendisi. Zamanın ftp.retrlines('list')'dan ayrılabileceğini varsayarsak, indirilen dosyada değiştirilen zamanı nasıl ayarlayabilirim?

Eğer önemliyse unix tabanlı bir işletim sistemindeyim.

cevap

43

Bunu doğrudan python'dan yapmak istiyorsanız, os.utime'u arıyorsunuz. docs size daha fazla bilgi verebilir.

+0

, teşekkür – jdeuce

4

Bunu yapmanın 2 yolu vardır. Bunlardan biri, referans istatistiklerine sahip olmayan bir dosyada zaman damgasını ayarlarsanız, 'un gerekli olduğu os.utime örneğidir. Ancak, dosyaları "shutil.copy()" ile kopyalıyorsanız, bir referans dosyanız vardır. Eğer izin bitleri, son erişim zamanı, son değişiklik zamanı ve bayraklar da kopyalanan istiyorsanız Sonra hemen "shutil.copy()" den sonra "() shutil.copystat" kullanabilirsiniz.

Neden "shutil.copy()" işaretli bayrak eklemedikleri konusunda hiçbir fikrim yok bunu tek bir komutta yapar. Farklı yazarlar tarafından uygulandığı gibi görünüyor. Biri kopyayı uyguladı ve bir tanesi eskideki eksik özelliği doldurmak için copystat'ı uyguladı.

Ve sonra her ikisini birden yapın amaçlanmaktadır "shutil.copy2" var ... os.utime

19

Kullanım: Aradığım buydu

import os 

os.utime(path_to_file, (access_time, modification_time)) 
+0

Daha detaylı bir örneği: https://www.tutorialspoint.com/python/os_utime.htm – kashiraja

İlgili konular