如何使用win环境变量"pathlib"保存文件?
How to use win environment variable "pathlib" to save files?
我正在尝试使用像 %userprofile%\desktop
和 pathlib
这样的 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
模块很聪明,知道它在哪个操作系统上工作,并且知道在访问文件系统时使用哪种类型的“斜杠”。
我正在尝试使用像 %userprofile%\desktop
和 pathlib
这样的 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
模块很聪明,知道它在哪个操作系统上工作,并且知道在访问文件系统时使用哪种类型的“斜杠”。