如何解决用户名更改

时间:2019-02-24 16:43:10

标签: python path directory

我正在用python写一个简短的代码来自动化同事的流程。该程序非常简单,它从文本文件中查找并提取名称列表,该文本文件中还包含许多其他垃圾内容。然后可以轻松地将该列表与其他列表进行比较,或放入excel文件等。

我的想法是,对于他们来说,从源代码中提取文件并将其粘贴到其桌面上的文本文件中,这是最容易的事情,我的程序将自动从该文件中查找,读取并最终从中生成一个新的干净文件。我已经能够使用自己的计算机自行管理所有这些。

当我想访问计算机上原始的垃圾文本文件时,我只写:

cString(using:)

但是,当我将该程序导出到.exe并将其发送给同事时,这当然是行不通的,因为使用该程序的任何人大概都不会具有用户名“ Jon”。看来这将是一个普遍的问题,所以我假设有一些我找不到的简单解决方案。有没有办法访问“当前用户”的桌面或查找具有特定名称的文件,而又不提供其所在位置的完整路径?

经过一番研究,Environ似乎是一个不错的解决方案,它是为PC设计的。办公计算机是PC,但是我在Mac上进行编码,所以我猜测这意味着我将无法在系统上对其进行测试。

感谢任何帮助或其他方式来解决此问题!

1 个答案:

答案 0 :(得分:1)

使用~代表用户的主目录,然后可以使用os.path.expanduser将其扩展为当前用户的完整路径。

如果您以Jon的身份登录并且主目录为/Users/Jon,则

import os

print(os.path.expanduser("~/Desktop/namelisttext.txt"))

将打印:

/Users/Jon/Desktop/namelisttext.txt

os.path.expanduser的伟大之处在于它并不特定于一个操作系统。它将在Python支持的任何操作系统(包括Windows,否则通常不使用~)上做正确的事情。