Python - 表中的表

时间:2014-02-20 21:19:24

标签: python python-2.7

我是Python的新手,我只是很难将这些表分开。

使用此代码扫描文件时(例如,mypath =“C:/”):

“common”是包含扩展名的表格(例如“ .exe”,“ .pdf”)

cFiles = []
cFilesFull = []
for f in common:
    if glob.glob(mypath + f):
        print(glob.glob(mypath + f))
        cFiles.append(get_file_name(glob.glob(mypath + f)[0], 0))
        cFilesFull.append(glob.glob(mypath + f))

我最终得到了这个表的结果,cFilesFull:

[['C:/install.exe'], ['C:/install.res.1028.dll', 'C:/install.res.1031.dll', 'C:/install.res.1033.dll', 'C:/install.res.1036.dll', 'C:/install.res.1040.dll', 'C:/install.res.1041.dll', 'C:/install.res.1042.dll', 'C:/install.res.2052.dll', 'C:/install.res.3082.dll'], ['C:/VC_RED.MSI'], ['C:/eula.1028.txt', 'C:/eula.1031.txt', 'C:/eula.1033.txt', 'C:/eula.1036.txt', 'C:/eula.1040.txt', 'C:/eula.1041.txt', 'C:/eula.1042.txt', 'C:/eula.2052.txt', 'C:/eula.3082.txt'], ['C:/vcredist.bmp'], ['C:/globdata.ini', 'C:/install.ini']]

有没有办法可以将所有值添加到一个表中,而不是单独的表?

2 个答案:

答案 0 :(得分:0)

您可以使用extend代替append

cFiles, cFilesFull = [], []
for f in common:
    if glob.glob(mypath + f):
        print(glob.glob(mypath + f))
        cFiles.extend(get_file_name(glob.glob(mypath + f)[0], 0))
        cFilesFull.extend(glob.glob(mypath + f))

这会将每个项目添加到列表的顶层。


append vs extend list s

的示例
>>> l = [1,2,3]
>>> l.append([4,5])
>>> print(l)
>>> [1, 2, 3, [4, 5]]
>>> l.extend([6, 7, 8])
>>> print(l)
>>> [1, 2, 3, [4, 5], 6, 7, 8]

答案 1 :(得分:0)

glob.glob返回一个序列。不是将此序列附加到cFilesFull列表,而是扩展列表。

cFilesFull.extend(glob.glob(mypath + f))