如何获取用户的桌面位置



我正在制作一个python脚本,通过FFMPEG合并音频和视频文件。下面显示的代码运行得很好,但我想做的是我提供的桌面位置的(路径(,但如果其他人运行此代码,他们会出错。那么,我如何为任何计算机提供桌面的通用路径

import os
import subprocess
import tkinter as tk
root = tk.Tk()
os.chdir('C://Users/ravir/desktop/') # how to get the users desktop location 
def merge():
global p
p =subprocess.Popen('ffmpeg -i video.avi -i audio.wav -c copy -shortest output.mkv' ,stdin=subprocess.PIPE)

rec_btn = tk.Button(text='Start merging', width=20, command=merge)
rec_btn.pack()

root.mainloop()

类似于:

...  
os.chdir(f'C://Users/{os.getlogin()}/desktop/') # how to get the users desktop  
...  

应该起作用。os.getlogin((获取当前登录用户的用户名,使用f-string可以将其插入路径名中。

为了对此进行扩展,如果您将其移动到unix系统,您可能希望使用pwd模块

import pwd  
# will return the login name of the user who ran script and root if run with sudo
pwd.getpwuid(os.getuid())[0] 

我想这里需要澄清一下。顾名思义,os.getlogin()获取当前用户的登录名,因此在您的情况下,您可能可以在Windows和Unix上这样运行它。

pwd.getpwuid(os.getuid())[0]获取运行脚本的用户,如果您想检查脚本是否由root用户通过sudo运行,这将非常有用。

注意:f-string是在Python 3.6中引入的。我认为,如果你使用的是早期版本的Python,那么你就必须执行以下操作:

username = os.getlogin()
os.chdir('C://Users/%s/desktop/' % username )  

相关内容

最新更新