Python 如何说明用户名称的更改

Python 如何说明用户名称的更改,python,path,directory,Python,Path,Directory,我正在用python编写一个简短的代码,以便为同事自动化一个过程。这个程序相当简单,它从一个包含很多其他垃圾的文本文件中查找并提取一个名称列表。然后,可以轻松地将该列表与其他列表进行比较,或将其放入excel文件等 我的想法是,对他们来说,从源代码中获取文件并将其粘贴到桌面上的文本文件是最简单的,我的程序将自动定位、读取并最终生成一个新的干净文件。我已经能够用自己的电脑自己管理所有这些 当我想访问计算机上原始的垃圾填充文本文件时,我只需写: f = open("/Users/Jon/Deskto

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

我的想法是,对他们来说,从源代码中获取文件并将其粘贴到桌面上的文本文件是最简单的,我的程序将自动定位、读取并最终生成一个新的干净文件。我已经能够用自己的电脑自己管理所有这些

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

f = open("/Users/Jon/Desktop/namelisttext.txt", "r+")
但是当我将这个程序导出到.exe并发送给同事时,这当然不会起作用,因为使用它的人大概不会有用户名“Jon”。这似乎是一个常见的问题,所以我假设有一些简单的解决方案,我还没有找到。有没有一种方法可以访问“当前用户”的桌面或查找具有特定名称的文件,而不提供文件所在位置的完整路径

经过一些研究,这似乎是一个很好的解决方案,它是为PC设计的。工作计算机是PC机,但我在Mac上编码,所以我猜这意味着我无法在我的系统上测试它


任何帮助或其他方式,以规避这个问题是感激的

使用
~
表示用户的主目录,然后可以使用将其扩展到当前用户的完整路径

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

导入操作系统
打印(os.path.expanduser(“~/Desktop/namelisttext.txt”))
将打印:

/Users/Jon/Desktop/namelisttext.txt

os.path.expanduser
最大的优点在于它不是特定于一个操作系统的。它在Python支持的任何操作系统上都会做正确的事情,包括Windows,Windows通常不使用
~

您的同事可以将txt文件放在Python脚本所在的文件夹中吗?请参阅此答案。使用
导入操作系统
os.environ['USERNAME']