在程序文件中查找用户程序路径,以便安装到正确的目录
Find users program path in program files for installation to correct directory
这就是我想要做的。
我有一个小程序,它利用 pygame 音乐播放器来播放 mp3。我将此 mp3 与基于 python 的 exe 放在同一目录中,因此我可以 运行 它。
问题是我将 mp3 的路径指定为 'SOUND_FILE =' 字符串,如下所示:
pygame.init()
SOUND_FILE = r'C:\Users\Michael\Desktop\herprogram\classical.mp3'
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.mixer.init()
pygame.mixer.music.load(SOUND_FILE)
pygame.mixer.music.play(0)
这意味着当我运行在另一台机器上安装向导时,mp3 的路径会出错。它会有一些其他的 path/username.
路径的第一部分我需要是动态的,所以我可以使用 f 字符串将它连接到我将在安装向导中指定的路径的另一半。
我看过 python os 模块,但不太了解如何实现它。
非常感谢任何帮助。
谢谢,迈克尔
如果 mp3 文件应该位于用户计算机的桌面上,您可以转到:
from pathlib import Path
SOUND_FILE = f'{Path.home()}\Desktop\herprogram\classical.mp3'
您可以使用 os.getlogin()
获取执行文件的用户的用户名。
否则如果想获取文件执行目录的位置,可以使用os.path.dirname(os.path.abspath(__file__))
.
这是 os.path 的文档,以备您进一步研究。
这就是我想要做的。
我有一个小程序,它利用 pygame 音乐播放器来播放 mp3。我将此 mp3 与基于 python 的 exe 放在同一目录中,因此我可以 运行 它。
问题是我将 mp3 的路径指定为 'SOUND_FILE =' 字符串,如下所示:
pygame.init()
SOUND_FILE = r'C:\Users\Michael\Desktop\herprogram\classical.mp3'
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.mixer.init()
pygame.mixer.music.load(SOUND_FILE)
pygame.mixer.music.play(0)
这意味着当我运行在另一台机器上安装向导时,mp3 的路径会出错。它会有一些其他的 path/username.
路径的第一部分我需要是动态的,所以我可以使用 f 字符串将它连接到我将在安装向导中指定的路径的另一半。
我看过 python os 模块,但不太了解如何实现它。
非常感谢任何帮助。
谢谢,迈克尔
如果 mp3 文件应该位于用户计算机的桌面上,您可以转到:
from pathlib import Path
SOUND_FILE = f'{Path.home()}\Desktop\herprogram\classical.mp3'
您可以使用 os.getlogin()
获取执行文件的用户的用户名。
否则如果想获取文件执行目录的位置,可以使用os.path.dirname(os.path.abspath(__file__))
.
这是 os.path 的文档,以备您进一步研究。