首页 > 解决方案 > 将变量传递给 os.pathisfile

问题描述

我为放置公共桌面快捷方式的路径声明了变量(下面的代码)

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)在同一位置删除相同的快捷方式 - 只是为了让您了解我想要做的基本上是程序将删除图标/删除程序/重新安装程序然后使用相同的变量将快捷方式放回去。当我使用下面的代码时,它似乎没有做任何事情。

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

标签: pythonpython-3.x

解决方案


来自关于的文档os.path.join

如果一个组件[即函数的第二个参数]是绝对路径,则所有先前的组件都将被丢弃,并从绝对路径组件继续连接。

(强调我的)

在您的情况下,呼叫将类似于:

os.path.join(r"C:\Users\Public\Desktop", "\\ProgramShortcut.lnk")

但是 "\\ProgramShortcut.lnk"是一个绝对路径,所以你最终会检查文件C:\ProgramShortcut.lnk


推荐阅读