首页 > 解决方案 > 如何在 os.utime 中使用 windows 路径?

问题描述

我想更改文件的修改日期,所以我使用os.utime,但它找不到文件,我得到一个错误Exception has occurred: FileNotFoundError Can't find file: 'C:\\My folder\\2207222. .xlsm'

据我了解,问题是反斜杠。所以我尝试了:

1)用空str替换反斜杠,用斜杠,比如fileLocation.replace("\ ", "")

2)也PureWindowsPath(fileLocation)不起作用。当我用它打印fileLocation 时,print()会打印“C:/My Folder/2207222.xlsm”,但是当它尝试查找文件时失败。

3) 在原始字符串中使用斜杠而不是反斜杠,例如 r"C:\My Folder\2207222.xlsm"。输出发生异常:FileNotFoundError 找不到文件:'C:\My Folder\2207222.xlsm'

4) 使用斜杠代替反斜杠。输出发生异常:FileNotFoundError 找不到文件:“C:\\My Folder\x907222.xlsm”

有人可以说如何处理这个问题吗?

以下是代码示例之一

import os
import time
import datetime

fileLocation = 'C:/2207222.xlsm'
year = 2017
month = 11
day = 5
hour = 19
minute = 50
second = 0

date = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=minute, second=second)
modTime = time.mktime(date.timetuple())

print(fileLocation)
os.utime(fileLocation, (modTime, modTime))

标签: pythonwindowsfilesystemsfilepath

解决方案


这可能是一个非常棘手的问题,所以我建议使用os.path.join. 对于您的情况,我会这样做:

fileLocation = os.path.join('C:\\', 'My Folder', '2207222.xlsm')

推荐阅读