【问题标题】:making subprocess.Popen switch directory's and do a command with path isn't known python制作 subprocess.Popen 切换目录并使用路径执行命令是未知的 python
【发布时间】:2021-08-17 01:55:48
【问题描述】:

在 python 中工作并试图使子进程在与父目录不同的目录中工作。做了一个超级简化的测试版本,它不工作

def test:
   testPath1 = 'C:\\"%HOMEPATH%"\\Desktop'
   testPath2 = 'C:\\Users\\user\\Desktop'
   subprocess.Popen('dir', cwd=testPath1, shell=True)
test()

此代码适用于 testPath2 但不适用于 testPath1

错误: NotADirectoryError: [WinError 267] 目录名无效

但是,如果我在终端中实际键入 'cd C:"%HOMEPATH%"\Desktop',它确实可以工作并且确实会到那里,所以路径'确实'工作。但是这段代码不是....

有什么想法或建议吗?

【问题讨论】:

标签: python windows path subprocess


【解决方案1】:

一位朋友向我展示了一个使用 pathlib 的绝佳解决方案:

from pathlib import Path

home = Path.home()

# if you want the Desktop dir you do
desktop = home / 'Desktop'

# then you can check if it exists
if desktop.exists():
    # do stuff

这能够解决我的问题并帮助我的代码即使在 linux 或 mac 中也能正常工作,而不仅仅是 windows。

希望这对以后遇到类似问题的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2019-08-02
    • 2012-02-28
    • 2021-09-14
    • 2021-12-31
    • 2014-12-24
    • 2012-12-11
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多