在Python中创建dir不起作用(Windows)

时间:2016-10-19 14:06:58

标签: python-3.x

我的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

3 个答案:

答案 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')