Python-为什么通配符不能在这里工作?

时间:2019-05-31 06:40:56

标签: python wildcard

因此,我试图将通配符放入网络文件夹的路径中。路径在这里:

r"\\10.180.22.211\\Data\\DS~109803~Company~name of site\\Database"

DATA和Database之间的部分发生了变化,但其余路径保持不变。因此,当我实际放入整个路径时,它就可以正常工作,但是如果我尝试将中间部分更改为通配符位,那么它将无法正常工作。

r"\\10.180.22.211\\Data\\*\\Database"

OSError:[WinError 123]文件名,目录名称或卷标签语法不正确:“ \\ 10.180.22.211 \\ Data \\ * \\ Database”

我尝试了,'',**,DS〜*, 109803 和其他几种组合,但没有一个通配符可以使用。有人可以解释为什么他们不起作用以及在这种情况下是否有办法使通配符起作用吗?

编辑:

这里是我的更多代码:

import os, shutil
import glob

ip = "10.180.22.211"
#ip = input("Input your IP: ")


directorya = r"\\10.180.22.211\\Jobdata\\*\\Database"
#directorya = r"\\10.180.22.211\\Jobdata\\DS~109803000~customer~job site\\Database"
directoryb = "C:\\Users\\user\\Desktop\\test"

files = [file for file in os.listdir(directorya) if os.path.isfile(os.path.join(directorya, file))]
newest = max(glob.iglob(directorya + '\\*.*'), key=os.path.getctime)
print(newest)
shutil.copy(os.path.join(directorya, newest), directoryb)

1 个答案:

答案 0 :(得分:0)

您有两种方法:

使用列表目录:

for filename in os.listdir(path):
    ......

或使用glob:

import glob
path = "\10.180.22.211\Data\*\Database"
for filename in glob.glob(path):
    ....

获取最新文件:

    list_of_files = glob.glob('/path/to/folder/*')
    newest = max(list_of_files, key=os.path.getctime)
    print newest