【问题标题】:Change Directory and Execute Command - Python更改目录并执行命令 - Python
【发布时间】:2021-09-14 01:36:54
【问题描述】:

通过参考教程编写的这段代码,我一直在苦苦挣扎:

    import os
    os.chdir(f'/home/django/image-io/accounts/john_doe/optimized/')
    cwd = os.getcwd()
    logger.info(f'CURRENT WORKING DIRECOTRY :{cwd}')
    subprocess.Popen(f"optimize-images")

在这种情况下,我要做的是动态更改用户名 (john_doe) 上的目录,并在该目录中运行命令 optimize-images 以优化所有图像。

它似乎不起作用。

当我检查日志时,它说:

optimize-images : "不存在这样的目录"

我无法理解,我在哪里做错了。任何帮助将不胜感激。

【问题讨论】:

    标签: python directory


    【解决方案1】:

    在这段代码中,我们正在优化 optimized 文件夹中包含的图像。

    import os
    import subprocess
    os.chdir(r'/home/django/image-io/accounts/john_doe/optimized')
    cwd = os.getcwd()
    p=subprocess.Popen([r"optimize-images", cwd])
    

    我们需要以数组列表格式传递参数。您可以获取更多详情here。

    subprocess.Popen([r"optimize-images", cwd])

    注意:

    • r 用于表示原始字符串。
    • 当我们需要在字符串中包含 Python 表达式的值时,使用 f。

    【讨论】:

    • 感谢您的回答。它对你有用吗?我的意思是本地。
    • 是的。我用上面的行创建了一个 python 脚本,然后执行它。将参数传递给 os.chdir() 函数时,检查您的路径是绝对路径还是相对路径。
    • 它在图像上应用无损数据压缩算法,使其针对网络使用进行优化。
    • 谢谢。另一个问题突然出现在我的脑海中。我将图像优化代码用于长期运行的任务,不同的人将调用此端点。会不会有影响,还是所有子流程都单独管理。 ?
    【解决方案2】:

    这是你需要的吗? Popen error: [Errno 2] No such file or directory

    试试subprocess.Popen(f"optimize-images", shell = True)

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多