使用Python写入任何用户桌面

时间:2019-04-30 17:35:10

标签: python

我是Python的新手,因此如果这是一个基本问题,我们深表歉意。

我已经成功创建了一个写入我特定桌面目录的exe文件,但是我正在努力寻找一种写入任何用户桌面目录的方法。 这个想法是我的exe文件,可以复制到任何用户个人资料上并以相同的方式工作。 这是我的代码:

 file = open('C:\\Users\\user\\Desktop\\PC info.txt','w')

有人可以帮助我调整代码以使其在任何用户桌面上运行。预先谢谢你

4 个答案:

答案 0 :(得分:1)

您可以通过os模块获取用户名:

import os

username = os.getlogin()    # Fetch username
file = open(f'C:\\Users\\{username}\\Desktop\\PC info.txt','w')
file.write('Hello desktop')
file.close()

答案 1 :(得分:0)

如果您使用的是Python3.5 +,则可以使用以下命令获取当前用户主目录的路径:

import os
import sys
from pathlib import Path

def main():
    home = str(Path.home())
    path = os.path.join(home, "filename.txt")
    with open(path, "w") as f:
        f.write("HelloWorld")

if __name__ == '__main__':
    main()

答案 2 :(得分:0)

这是您要寻找的吗?

import os
import pickle

if not os.path.isfile("test_pkl.pkl"):
    with open("test_pkl.pkl",'wb') as file:
        pickle.dump("some obejct", file)

在此示例中,文件名将为:“ C:\ Users \ MrShaun \ Desktop \ PC info.txt”

很显然,您可能希望围绕它构建一个结构,例如要求用户输入用户名并将其分配给变量 username

详细了解如何在Python here中格式化字符串

答案 3 :(得分:0)

只需将os.getlogin与f字符串一起使用,即可将用户名插入文件路径:

import os

with open(fr'C:\Users\{os.getlogin()}\Desktop\PC info.txt', 'w') as f:
    # do something with f

我还在这里使用了原始字符串文字,这样就不必转义反斜杠。

始终建议使用上下文管理器(with open(...) as f)处理文件,以便即使发生异常也可以关闭文件处理程序。