我是Python的新手,因此如果这是一个基本问题,我们深表歉意。
我已经成功创建了一个写入我特定桌面目录的exe文件,但是我正在努力寻找一种写入任何用户桌面目录的方法。 这个想法是我的exe文件,可以复制到任何用户个人资料上并以相同的方式工作。 这是我的代码:
file = open('C:\\Users\\user\\Desktop\\PC info.txt','w')
有人可以帮助我调整代码以使其在任何用户桌面上运行。预先谢谢你
答案 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
)处理文件,以便即使发生异常也可以关闭文件处理程序。