【问题标题】:os.chdir() to relative home directory (/home/usr/)os.chdir() 到相对主目录 (/home/usr/)
【发布时间】:2017-01-19 03:34:03
【问题描述】:

有没有办法使用 os.chdir() 转到相关用户文件夹?

我正在制作一个 bash,我发现的唯一问题是 cd ~arg[0] 是未定义的,因为我正在使用这个 cd 函数:

def cd(args):
    os.chdir(args[0])
    return current_status

我想改成什么

def cd(args):
    if args[0] == '~':
        os.chdir('/home/') 
# Here I left it to /home/ since I don't know how 
# to get the user's folder name
    else:
        os.chdir(args[0])
    return current_status

【问题讨论】:

  • 可以解析环境变量$HOME

标签: python bash shell chdir


【解决方案1】:

不,os.chdir 不会这样做,因为它只是系统调用的一个薄包装。考虑~ 实际上是目录的合法名称。

但是,您可以使用 os.expanduser 在路径中扩展 ~

def cd(path):
    os.chdir(os.path.expanduser(path))

请注意,这也会将~user 扩展到user 的主目录。

【讨论】:

  • 这也更广泛地适用,它处理相对于用户主页 (~/private/dir) 的路径,并且(在一定程度上)也处理其他用户主页的相对路径 (~otheruser/public/dir)。
  • 为什么~找不到返回路径错误?我会检查我的代码并编辑我的问题。
猜你喜欢
  • 1970-01-01
  • 2017-10-22
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
相关资源
最近更新 更多