3

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

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

导入路径库
从日期时间导入日期时间

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)
4

3 回答 3

4

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模块很聪明,知道它在哪个操作系统上工作,并且知道在访问文件系统时要使用哪种类型的“斜线”。

于 2020-09-05T23:22:45.603 回答
3

我使用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'
于 2020-08-23T04:02:09.183 回答
2

尝试:

import os
a = os.environ['USERPROFILE'] + r'\desktop\test2'
# rest of script....
于 2018-11-24T08:17:12.273 回答