python getostime_python转换在os.utime中使用的datetime

我无法在python中的文件上设置ctime / mtime.首先,我通过ftp获取文件的原始时间戳

我唯一想要的是使用ftplib在我下载的文件上保留原始时间戳.

def getFileTime(ftp,name):

try :

modifiedTime = ftp.sendcmd('MDTM ' + name)

filtid = datetime.strptime(modifiedTime[4:], "%Y%m%d%H%M%S").strftime("%d %B %Y %H:%M:%S")

return filtid

except :

return False

然后我下载文件

def downloadFile(ftp, fileName) :

try:

ftp.retrbinary('RETR %s' % fileName,open(fileName, 'wb').write)

except ftplib.error_perm:

print 'ERROR: cannot read file "%s"' % fileName

os.unlink(fileName)

return False

else:

print '*** Downloaded "%s" to CWD' % fileName

return True

我想将原始时间戳设置为下载的文件

def modifyTimestapToOriginal(fileName, orgTime):

#try:

os.utime(fileName, orgTime)

fileName.close()

# return True

# except:

# return False

这就是我试图这样做的方式

ftp, files = f.loginftp(HOST,user,passwd,remoteDir)

for i in files :

if not f.isDir(ftp,i) :

fixTime = datetime.strptime(varfixtime, "%d-%m-%Y %H:%M:%S")

ftime = f.getFileTime(ftp,i)

if ftime >= fixTime :

print (ftime)

os.chdir('c:/testdownload')

f.downloadFile(ftp,i)

settime = ftime.timetuple()

print "settime '%s'" % settime

#f.modifyTimestapToOriginal(i, settime)

错误是:

os.utime(fileName, orgTime)

TypeError: utime() arg 2 must be a tuple (atime, mtime)

任何人都可以帮我或者给我一个更好的方法来保持原始文件的时间戳或如何将ftime转换为os.utime的可用元组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是可以帮助您自动更改文件日期的Python代码实现: ```python import os import datetime def change_file_date(filename, new_date): # 将字符串转换为当前日期对象 new_date = datetime.datetime.strptime(new_date, "%Y-%m-%d").date() # 获取当前文件的创建时间和修改时间 create_time = os.path.getctime(filename) modify_time = os.path.getmtime(filename) # 将时间转换为日期对象 create_date = datetime.date.fromtimestamp(create_time) modify_date = datetime.date.fromtimestamp(modify_time) # 更改创建时间和修改时间 os.utime(filename, (create_time, new_date.timestamp())) # 输出修改前后的文件日期 print(f"{filename}: {create_date} --> {new_date}") ``` 上述代码定义了一个名为`change_file_date`的函数,它有两个参数:文件名和新日期。文件名应该是包含完整路径的字符串,新日期应该符合“YYYY-MM-DD”的日期字符串格式。该函数将获取文件的创建日期和修改日期,并将修改日期更改为给定日期。最后,函数输出文件的更改前后日期。 要在文件的所有文件使用此函数,您可以编写以下代码: ```python folder_path = "path/to/folder" # 获取文件的所有文件 files = os.listdir(folder_path) # 循环遍历所有文件 for file in files: # 检查是否为文件 if os.path.isfile(os.path.join(folder_path, file)): # 更改文件日期 change_file_date(os.path.join(folder_path, file), "2022-01-01") ``` 在上述代码,我们首先定义文件夹的路径,然后获取文件的所有文件。接下来,我们循环遍历所有文件,检查它是否为文件,并在是的情况下调用`change_file_date`函数更改文件日期。在此示例,我们将文件日期更改为2022年1月1日。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值