Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Python中创建目录不起作用(Windows)_Python 3.x - Fatal编程技术网

Python 3.x 在Python中创建目录不起作用(Windows)

Python 3.x 在Python中创建目录不起作用(Windows),python-3.x,Python 3.x,我的python项目有问题。我在mac电脑上开始编码,后来在windows电脑上查看。现在的问题是,我创建文件的方法无法工作(即使如此,我还是将其调整为新的文件系统) 我尝试在现有目录(C:\Users\t\Documents\pythonProject\SampleData\2016-10-19\u 16:03:57)中创建一个子目录(C:\Users\t\Documents\pythonProject\SampleData) 然而,当我执行代码时,我得到一个预期,即我的文件名的sytax不正

我的python项目有问题。我在mac电脑上开始编码,后来在windows电脑上查看。现在的问题是,我创建文件的方法无法工作(即使如此,我还是将其调整为新的文件系统)

我尝试在现有目录(C:\Users\t\Documents\pythonProject\SampleData\2016-10-19\u 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

使用驱动器号
C:
反斜杠
作为
os.path.join()调用中的第一个参数:

os.path.join('C:\\','Users', 't', 'Documents', 'pythonProject', 'SampleData')
在窗户里

文件夹名或文件名不能包含以下任何字符:*?“|

因此,请替换除上述字符以外的任何其他字符:

我已将
替换为
-

strftime('%Y-%m-%d_%H-%M-%S')

您正在尝试创建文件名,根据,该文件名无效

文档中的例外(强调我的):

使用当前代码页中的任何字符作为名称,包括 Unicode字符和扩展字符集中的字符 (128-255),除以下内容外:

  • (大于)
  • (冒号)
  • (双引号)
  • /
    (正斜杠)
  • \
    (反斜杠)
  • |
    (竖条或管道)
  • (问号)
您需要更改
st
值以表示有效的NTFS文件名,例如

st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H-%M-%S')

谢谢你的评论。不幸的是,它也不起作用。哦,唯一的问题是,冒号(:)在Windows文件夹/文件名中是被禁止的,所以您必须更改它们(例如从9:36:27更改为9-36-27),谢谢!安静了一段时间后我也看到了汉克斯!安静了一段时间后我也看到了D@TorbenVerdorben如果答案有助于解决你的问题,那么接受答案。