【问题标题】:Python 2.7, use username in filepathPython 2.7,在文件路径中使用用户名
【发布时间】:2019-06-25 03:11:22
【问题描述】:

目前我正在尝试将用户名保存为变量。由于此脚本将发送给其他人,因此我试图找到用户名,并将其保存为变量,然后在文件路径中使用该变量。例如:

import getpass
username = getpass.getuser()
os.chdir('/home/{username}/')
<other code>

我还是非常 Python 新手,所以如果你能帮助我并解释它的作用,那将不胜感激。使用 Linux Ubuntu,因此 Windows 解决方案不会很有帮助。

编辑

因为它是 python 2.7,所以上面的 f-string 不起作用。使用 '/home/{}/'.format(username) – Sergey Pugach

谢谢 Sergey Pugach,它完美地解决了我的问题。感谢大家在 2 小时内解决我的问题。祝你有美好的一天!

【问题讨论】:

  • 使用 Python 3.x+ 和 f'/home/{username}/' 应该可以工作。
  • 因为它是 python 2.7 上面的f-string 将不起作用。使用'/home/{}/'.format(username)
  • 小提示,不是所有的家都是这种格式,你可以用os.environ['HOME']应该更便携。
  • 如果你是初学者,你应该学习最新版本的 Python,Python 3.7,因为整个 2.x 分支将在 2020 年停止。
  • 要使用路径,您应该默认为os.path.join('/home', username)。可能并不总是必要的,但它会为您节省更多的头痛,然后它会导致您。

标签: python


【解决方案1】:

写在https://docs.python.org/2/library/getpass.html

getpass.getuser() 返回用户的“登录名”。

该函数依次检查环境变量LOGNAME、USER、LNAME和USERNAME,并返回第一个设置为非空字符串的值。如果未设置,则在支持 pwd 模块的系统上返回密码数据库中的登录名,否则将引发异常。

【讨论】:

    【解决方案2】:

    您可能应该使用expanduser 函数来获取合适的目录。这确保它可以在 macOS、Linux 和 Windows 上运行。

    https://docs.python.org/2/library/os.path.html#os.path.expanduser

    【讨论】:

      【解决方案3】:

      因为它是 python 2.7,所以上面的 f-string 不起作用。使用 '/home/{}/'.format(username) – Sergey Pugach

      谢谢 Sergey Pugach,它完美地解决了我的问题。感谢大家在 2 小时内解决我的问题。祝你有美好的一天!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多