如何将变量放入路径中
How do I put a variable in a path
我正在尝试将路径存储在变量中。 见下文
target = r"C:\Users\User\CodeProjects\WebSafer"
但是,我需要它是动态的。没有硬编码到我的用户名,所以我通过以下方式获得登录用户名:
val = os.getlogin()
所以我需要把变量val
放在路径中。但每次我尝试这样做时,我总是会收到 truncating/syntax 错误。请帮我!下面是代码片段:
print("No copy found...making a copy\n")
val = os.getlogin()
original = r"C:\*******\********\*******\***\****"
target = r"C:\Users\User\CodeProjects\WebSafer"
shutil.copy(original, target)
“*”只是出于隐私原因,实际上替换为我正在复制的正确路径位置。
到目前为止我尝试了什么:
target = r"C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
target = r"C:\Users\{}\CodeProjects\WebSafer".format(val)
target = rf"C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
target = rf"C:\Users\{}\CodeProjects\WebSafer".format(val)
"r" 表示字符串将被视为原始字符串,因此请尝试删除它并使用转义字符 target = "C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
不要将 f
与 .format
混用,这对我有用:
import os
val = os.getlogin()
print(rf"C:\Users\{val}\CodeProjects\WebSafer")
我认为更好的方法是:
import os.path
from pathlib import Path
home = str(Path.home())
print(os.path.join(home, "CodeProjects\WebSafer"))
然后如果你在复制的时候遇到什么错误,你需要弄清楚你要复制的是什么,复制一个文件,还是一个文件夹,如果是文件夹,是放到dest文件夹里面,还是覆盖目标文件夹?
您可能想尝试不同的方法,例如
shutil.copy
、shutil.copytree
和不同的参数。
您可以同时使用 f-string(直接输入您的变量)和 r-string(输入没有转义字符的路径,如 \
)。
val = os.getlogin() # Returns username
target = fr"C:\Users\{val}\CodeProjects\WebSafer"
如果您收到 No such file or directory
错误,则表示实际文件或文件夹不存在。检查实际路径以确保每个部分(您的用户名、CodeProjects、Websafer)都存在于您的计算机上。
如果您不知道您的用户是否会在他们的系统上拥有该文件夹,您可以使用 try-except 块来提醒用户或恢复到某个默认文件夹。
我正在尝试将路径存储在变量中。 见下文
target = r"C:\Users\User\CodeProjects\WebSafer"
但是,我需要它是动态的。没有硬编码到我的用户名,所以我通过以下方式获得登录用户名:
val = os.getlogin()
所以我需要把变量val
放在路径中。但每次我尝试这样做时,我总是会收到 truncating/syntax 错误。请帮我!下面是代码片段:
print("No copy found...making a copy\n")
val = os.getlogin()
original = r"C:\*******\********\*******\***\****"
target = r"C:\Users\User\CodeProjects\WebSafer"
shutil.copy(original, target)
“*”只是出于隐私原因,实际上替换为我正在复制的正确路径位置。
到目前为止我尝试了什么:
target = r"C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
target = r"C:\Users\{}\CodeProjects\WebSafer".format(val)
target = rf"C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
target = rf"C:\Users\{}\CodeProjects\WebSafer".format(val)
"r" 表示字符串将被视为原始字符串,因此请尝试删除它并使用转义字符 target = "C:\Users\{val}\CodeProjects\WebSafer".format(val = os.getlogin)
不要将 f
与 .format
混用,这对我有用:
import os
val = os.getlogin()
print(rf"C:\Users\{val}\CodeProjects\WebSafer")
我认为更好的方法是:
import os.path
from pathlib import Path
home = str(Path.home())
print(os.path.join(home, "CodeProjects\WebSafer"))
然后如果你在复制的时候遇到什么错误,你需要弄清楚你要复制的是什么,复制一个文件,还是一个文件夹,如果是文件夹,是放到dest文件夹里面,还是覆盖目标文件夹?
您可能想尝试不同的方法,例如
shutil.copy
、shutil.copytree
和不同的参数。
您可以同时使用 f-string(直接输入您的变量)和 r-string(输入没有转义字符的路径,如 \
)。
val = os.getlogin() # Returns username
target = fr"C:\Users\{val}\CodeProjects\WebSafer"
如果您收到 No such file or directory
错误,则表示实际文件或文件夹不存在。检查实际路径以确保每个部分(您的用户名、CodeProjects、Websafer)都存在于您的计算机上。
如果您不知道您的用户是否会在他们的系统上拥有该文件夹,您可以使用 try-except 块来提醒用户或恢复到某个默认文件夹。