我的python项目有问题。我开始编写我的mac编码,然后在我的Windows计算机上检查了它。现在的问题是,我的创建文件的方法不起作用(即使我将其调整到新的文件系统)。
我尝试做的是在现有目录中创建一个子目录(C:\ Users \ t \ Documents \ pythonProject \ SampleData \ 2016-10-19_16:03:57)(C:\ Users \ t \ Documents \ pythonProject \的sampleData)
然而,当我执行代码时,我得到一个说明我的文件名的sytax不正确的预期......
def create_dir_if_not_exists():
try:
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
Utils.folderTimerStamp = os.path.join('Users', 't', 'Documents', 'pythonProject', 'SampleData')
Utils.folderName = 'SampleData\\' +st +'\\'
if not os.path.exists(Utils.folderTimerStamp+"\\" +st +"\\"):
os.makedirs(Utils.folderTimerStamp+"\\" +st +"\\")
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
答案 0 :(得分:1)
使用驱动器号C:
和backslash
作为os.path.join()
电话中的第一个参数:
os.path.join('C:\\','Users', 't', 'Documents', 'pythonProject', 'SampleData')
答案 1 :(得分:1)
在Windows中
文件夹名称或文件名不能包含任何\/:*?"<>|
个字符。
因此,将:
替换为上述
我已将:
替换为-
strftime('%Y-%m-%d_%H-%M-%S')
答案 2 :(得分:1)
您正在尝试创建根据NTFS requirements无效的文件名。
文档中的例外情况(强调我的):
使用当前代码页中的任何字符作为名称,包括 扩展字符集中的Unicode字符和字符 (128-255),除以下:
<
(小于)>
(大于):
(冒号)"
(双引号)/
(正斜杠)\
(反斜杠)|
(垂直条或竖线)?
(问号)
您需要更改st
值以表示有效的NTFS文件名,例如
st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H-%M-%S')