【问题标题】:os.makedirs() / os.mkdir() on Windows. No error, but no (visible) folder createdos.makedirs() / os.mkdir() 在 Windows 上。没有错误,但没有创建(可见)文件夹
【发布时间】:2019-09-17 05:50:25
【问题描述】:

我只是尝试使用 Python 的 (3.7.3) os.makedirs() 和 os mkdir() 创建一些新文件夹。 显然,它工作正常,因为没有发生错误(Win 10 Home)。但是当我尝试在 Windows 资源管理器中找到创建的文件夹时,它不存在。

尝试使用 python 再次创建它时出现错误: '[WinError 183] 当文件已存在时无法创建文件:'

奇怪的是,这一切在我工作的电脑上运行良好(Wind 10 也是),在我的安卓平板电脑上也运行良好。

我已经尝试在 makedirs / mkdir 中使用相对路径和绝对路径。

好的,就是这几行:

import os

# print(os.getcwd()) shows: C:\Users\Andrej\Desktop

# tried relative path..
os.makedirs('Level1/Level2/Level3')

# tried out some absolute paths like...
os.makedirs('C:/Users/Andrej/Desktop/Level1/Level2/Level3') 
os.makedirs('C:\\Users\\Andrej\\Desktop\\Level1\\Level2\\Level3')

更新:当我直接在 Windows PowerShell 中编写 makedirs 命令时,它可以完美运行。只有当我在 Visual Code Studio 中编写此代码,然后通过键入以下命令从 powershell 启动文件时才会出现上述问题:python makedirs.py...

【问题讨论】:

  • 听起来像是创建了目录,但不是在您期望的地方创建了它们,或者存在一些授权问题意味着您看不到它们
  • 对于最后一个, : 放错地方了: os.makedirs('C\\:Users\\Andrej\\Desktop\\Level1\\Level2\\Level3') 应该是: os.makedirs('C:\\Users\\Andrej\\Desktop\\Level1\\Level2\\Level3')
  • 是的,因为它是我自己的电脑,我拥有管理员权限,所以我启用了查看隐藏文件夹和文件的选项......但是,什么都没有出现......我也在 python 安装文件夹中查找...以防万一它与相对路径有一些问题..没什么。 PS:是的:错了,对不起,我手动输入了代码,在我的文件中它设置在正确的位置
  • 我不明白 当我直接在 Windows powershell 中编写 makedirs 命令时通过键入以下命令从 powershell 启动文件之间的区别:python makedirs. py。代码是正确的,所有 3 次,尽管相对路径可能不会在您期望的位置创建文件夹。因此,请修改您的问题,以准确地向我们展示您在每种情况下是如何运行代码的。它与权限无关(您不需要桌面文件夹的管理员权限),即使这样做,您也会收到一条错误消息。
  • 好的,我来解释一下:我测试了两种运行代码的方法。 ||| 1.WAY:编写一个名为 mdirs.py 的文件 --> 保存它 --> 进入 Windows PowerShell --> 通过键入 cd Desktop 进入文件的目录 --> 通过键入 python 运行 mdirs.py mdirs.py ||| 2.WAY:打开PowerShell-->输入python启动python-->输入import os-->输入:os.makedirs('C:/Users/Andrej/Desktop/Lv1/Lv2')。 |||当我使用 2.WAY 时,完全没有问题。我看到按预期创建的文件夹。只有当我选择 1.WAY 来创建它们时,我才会遇到所描述的“不可见”文件夹问题。

标签: python python-3.x


【解决方案1】:

我也遇到了同样的事情,只是我在 AppData/Roaming 目录中创建了一个文件夹,并且使用的是 Microsoft Store 中的 Python 版本。

显然,使用该版本的 Python 在 AppData 中创建的文件和目录将改为在以下位置创建:

%LocalAppData%\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache

【讨论】:

    【解决方案2】:

    我终于找到了导致这个问题的原因!

    所有创建的测试文件夹都已移动到名为 VTROOT 的文件夹中。这个文件夹是由我使用的 Comodo Internet Security 创建的......它的“自动包含”移动了我通过在 PowerShell 中运行 .py 文件中的代码(只有那时)设置的所有文件夹。

    禁用 Comodo 的自动包含解决了问题..哦,我的..

    还是谢谢你!

    【讨论】:

      【解决方案3】:

      if”部分将检查文件是否已经存在,从而解决错误:'[WinError 183] 当文件已经存在时无法创建文件:'

      import sys”部分将解决创建文件夹但用户不可见的窗口问题(即使打开了显示隐藏文件)

      import sys
      import os
      
      path = 'your path'
      def make_dir():
          if not os.path.exists(Path):
              os.makedirs(Path)
      

      import sys
      import os
      
      path = 'your path'
      def make_dir():
          mode = 0o666 #read and write for all users and groups 
          # form more permission codes search for: *chmod number codes*
          if not os.path.exists(Path):
              os.mkdir(Path, mode)
      

      【讨论】:

        【解决方案4】:

        尝试添加以下导入语句:

        import sys
        

        这应该可行。

        【讨论】:

        • 为您的答案添加更多详细信息
        • 这是什么魔法???我对一种情况感到抓狂,这很奏效!!!这是一个网络文件夹。请不要投票!!!!
        猜你喜欢
        • 1970-01-01
        • 2021-12-13
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 2020-04-21
        • 2013-07-10
        • 1970-01-01
        • 2018-03-26
        相关资源
        最近更新 更多