1

我正在使用 python 制作一个简单的程序,它从用户那里获取两个输入:- 文件名,它是用户想要搜索的文件的名称。pathname 是用户想要搜索文件的路径。我在我的代码中使用 os 模块。但是,我希望我的程序不应该在快捷方式中搜索文件。那么,有没有办法可以检查文件夹是否是快捷方式?我在下面发布了我的函数的定义:

def searchwithex(path, filen):
    global globalFileVal
    global globalFileList
    global count
    dirCounter = checkdir(path)  # checks whether the path is accesible or not.
    if dirCounter == True:
        topList = listdir(path)
        for items in topList:
            count += 1
            if filen == items:
                globalFileVal = path +'/' + items
                globalFileList.append(globalFileVal)
            items = path +  '/' + items
            if os.path.isdir(items): # checks whether the given element is a #file or a directory.
                counter = searchwithex(items, filen)
4

3 回答 3

2

在 Windows 上,链接(快捷方式)具有文件类型".lnk",因此您可以尝试fn.endswith(".lnk")返回True这些快捷方式文件。至少在 Windows 上,os.path.islink()只看到一个文件,不像在其他一些操作系统上,例如 linux,它具有真正的链接。

于 2019-03-12T19:44:15.293 回答
0

如果您想检查(符号)链接,请查看是否os.path.islink满足您的需求。

$ touch a
$ ln -s a b
$ python
Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os.path as _
>>> _.islink ('a')
False
>>> _.islink ('b')
True

我刚刚使用 nautilus 以图形方式创建了一个桌面“快捷方式”,右键单击文件夹,选择“创建链接”,它只是创建了一个符号链接。上面的脚本将其正确识别为链接。

于 2013-09-18T05:33:33.820 回答
0

它有更多评论,但对于评论无法格式化。我不明白是什么意思shorcut,但我希望,下面会有用:

In [1]: import os
In [2]: files = os.listdir("./tmp/11");
In [3]: print files
['mylog', 'testfile1', 'test.py', 'testfile0', 'test.sh', 'myflags', 'testfile2']
In [4]: True if "test.py" in files else False
True
于 2013-09-18T05:51:33.297 回答