首页 > 解决方案 > 用 python 添加到 ~/.zshrc 文件

问题描述

我正在尝试编写一个cli,它将采用他们输入命令行的用户路径,然后根据他们的shell将此路径添加到正确的路径文件中 - 在本例中为zsh。我试过使用:

    shell = str(subprocess.check_output("echo $SHELL", shell=True))
    click.echo("Enter the path you would like to add:")
    path = input()
    if 'zsh' in shell:
        with open(".zshrc", 'w') as zsh:
            zsh.write(f'export PATH="$PATH:{path}"')

这不会引发任何错误,但似乎不会添加到实际的 ~./zshrc 文件中。有没有更好的方法来附加到文件而无需手动打开文件并输入它?

如果这是一个愚蠢的问题,对此很抱歉......

标签: pythonshellfilepathzsh

解决方案


以追加模式打开文件。您的代码还假设当前工作目录是用户的主目录,这不是一个好的假设。

from pathlib import Path
import os


if 'zsh' in os.environ.get("SHELL", ""):
    with open(Path.home() / ".zshrc", 'a') as f:
        f.write(f'export PATH={path}:$PATH')

with (Path.home() / ".zshrc').open("a") as f:也可以。

请注意,这.zprofile将是更新环境变量(如PATH, 而不是.zshrc.


推荐阅读