在Windows中保存到桌面文件夹

2024-04-27 04:07:52 发布

您现在位置:Python中文网/ 问答频道 /正文

将文件保存到Windows上的“桌面”文件夹时出现问题。我有两个try语句。第一个尝试为Mac保存文件。第二个尝试将其保存到Windows。第二个except处理程序默认将文件保存在与应用程序相同的文件夹中。在

try:
    wb = openpyxl.load_workbook(os.path.expanduser('~/Desktop/' + 
            dateCur + '_' + timeCur + '_bap_attendance.xlsx'))
except:
    try:
        wb = openpyxl.load_workbook(os.getenv('%HOMEPATH%') + '\\Desktop\\' + 
            dateCur + '_' + timeCur + '_bap_attendance.xlsx')
    except:
        wb = openpyxl.load_workbook(
            self.manager.get_screen('offline').ids.label3.text)

当我收到一个错误时,它通常会说它在寻找Users\BobSmith,但是Windows帐户的用户名中应该有一个空格。getpass.getuser()也返回“BobSmith”,但我需要键入“BobSmith”才能切换到目录并进入“Desktop”文件夹。在


Tags: 文件文件夹oswindowsloadworkbooktrydesktop
1条回答
网友
1楼 · 发布于 2024-04-27 04:07:52

如果找不到变量,os.getenv()将返回None。在我看来,检查getenv是否不返回None,然后只执行try/except块,这样会更加优雅。在

更相关的问题似乎是如何检索%HOMEPATH%,尽管Windows使用%sys_var%作为系统变量,getenv()需要没有%符号的系统变量。另外,HOMEPATH返回路径,但是没有驱动器,^{} or ^{}将返回完整路径。在

尝试下面的修改代码,它应该也适用于Windows。在

try:
    wb = openpyxl.load_workbook(os.path.expanduser('~/Desktop/' + dateCur + '_' + timeCur + '_bap_attendance.xlsx'))
except:
    homepath = os.getenv('USERPROFILE')
    if homepath:
        try:
            wb = opennpyxl.load_workbook(homepath + '\\Desktop\\' + dateCur + '_' + timeCur + '_bap_attendance.xlsx')
        except:
            wb = openpyxl.load_workbook(self.manager.get_screen('offline').ids.label3.text)

此外,您可以使用sys.platform()来执行特定于您的操作系统的代码。在

相关问题 更多 >