我有一些变量声明为放置公共桌面快捷方式的路径(下面的代码)
SOURCE_PATH = r"\\ServerAddress\Installs\Software Package"
DEST_PATH = r"C:\Users\Public\Desktop"
FILE_NAME = "\\ProgramShortcut.lnk"
def place_shortcut():
print("Placing Shortcut on Desktop..")
shutil.copyfile(SOURCE_PATH + FILE_NAME, DEST_PATH + FILE_NAME) #
我希望使用相同的变量(DEST_PATH和File_Name)在同一位置删除相同的快捷方式-只是为了让您了解我要执行的操作,基本上是该程序将删除图标/删除该程序/ reinstall程序,然后使用相同的变量放回快捷方式。当我在下面使用以下代码时,它似乎没有任何作用。
def remove_shortcut():
if os.path.isfile(os.path.join(DEST_PATH, FILE_NAME)):
os.remove(os.path.join(DEST_PATH, FILE_NAME))
print("Removing existing shortcuts")
答案 0 :(得分:4)
来自the docs about os.path.join
:
如果某个组件(即函数的第二个参数)是绝对路径,则所有先前的组件都将被丢弃,并且连接将从绝对路径组件继续。
(强调我的)
在您的情况下,呼叫将类似于:
os.path.join(r"C:\Users\Public\Desktop", "\\ProgramShortcut.lnk")
但是 "\\ProgramShortcut.lnk"
是绝对路径,因此您最终将检查文件C:\ProgramShortcut.lnk
。