将变量传递给os.pathisfile

时间:2019-05-03 16:39:37

标签: python python-3.x

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

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

1 个答案:

答案 0 :(得分:4)

来自the docs about os.path.join

  

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

(强调我的)

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

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

但是 "\\ProgramShortcut.lnk"是绝对路径,因此您最终将检查文件C:\ProgramShortcut.lnk