【问题标题】:Create a folder and get its path after that using python创建一个文件夹并在之后使用 python 获取它的路径
【发布时间】:2022-12-01 17:08:24
【问题描述】:

我正在尝试在选定的文件夹内创建一个文件夹,以创建日期命名它并获取这个新创建的文件夹的绝对路径。我的代码在下面:

today = datetime.now()
dateAndTime = today.strftime("%m-%d-%Y")
workingdir = os.path.dirname(os.mkdir(delovnaMapa + "/" + dateAndTime))
print(workingdir)

此代码在所选文件夹内创建一个文件夹,但我收到以下错误消息:

Traceback (most recent call last):
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\IPython\core\interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-19-f0c6828b61d4>", line 3, in <module>
    workingdir = os.path.dirname(os.mkdir(delovnaMapa + "/" + dateAndTime))
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\ntpath.py", line 223, in dirname
    return split(p)[0]
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\ntpath.py", line 185, in split
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

我究竟做错了什么?

【问题讨论】:

    标签: python


    【解决方案1】:

    os.mkdir 函数创建一个目录,它的返回值是 None。

    为了完成你的工作,你应该使用

    os.mkdir(delovnaMapa + "/" + dateAndTime)

    然后,使用

    os.path.dirname(delovnaMapa + "/" + dateAndTime)

    【讨论】:

    • 谢谢您的回答!它部分有效,但 os.path.dirname 将路径读取为 os.path.dirname(delovnaMapa) 而不是 os.path.dirname(delovnaMapa + "/" + dateAndTime)。我只得到“delovnaMapa”的路径。
    • @TimGregorčič 我在 Windows 上。我用谷歌搜索了 os.path.dirname,它说它使用 split() 函数。它删除了最后一个元素,如果您使用“foo/bar”,它只会返回“foo”。但是我使用了这段代码并且它起作用了:You should be using print(os.path.join(dev + "/" + date)) for proper usage
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多