如何使用win环境变量"pathlib"保存文件?

How to use win environment variable "pathlib" to save files?

我正在尝试使用像 %userprofile%\desktoppathlib 这样的 win 环境变量来保护不同用户 PC 中的文件。

但我无法让它工作,它一直保存在 运行 脚本目录中。

import pathlib
from datetime import datetime

a = r'%userprofile%\desktop\test2' b = 'test' def path(path_name, f_name): date = datetime.now().strftime("%d%m-%H%M%S") file_name = f'{f_name}--{date}.xlsx' file_path = pathlib.Path(path_name).joinpath(file_name) file_dir = pathlib.Path(path_name) try: file_dir.mkdir(parents=True, exist_ok=True) except OSError as err: print(f"Can't create {file_dir}: {err}") return file_path path(a, b)

尝试:

import os
a = os.environ['USERPROFILE'] + r'\desktop\test2'
# rest of script....

我用os.path.expandvars:

https://docs.python.org/3/library/os.path.html#os.path.expandvars

import os
os.path.expandvars(r"%UserProfile%\Pictures")
'C:\Users\User\Pictures'

pathlib 确实有 Path.home(),它扩展到用户的主目录。

from pathlib import Path
print(Path.home())    # On Windows, it outputs: "C:/Users/<username>"

# Build a path to Desktop
desktop = Path.home() / "Desktop"
print(desktop)    # On Windows, it outputs: "C:/Users/<username>/Desktop"

注意:虽然输出显示正斜杠“/”,而在 Windows 上,反斜杠“\”用于目录结构,但不要担心。 pathlib 模块很聪明,知道它在哪个操作系统上工作,并且知道在访问文件系统时使用哪种类型的“斜杠”。