2017-07-27 67 views
1

我想从网络文件夹中找到所有.gz文件的文件夹路径。 我有以下script但它给人error将字符串插入到python 3.6.0中的Dataframe中

TypeError: cannot concatenate a non-NDFrame object 

在同一

脚本请帮帮忙:

import os 
import pandas as pd 

adcPath = r'\\ADC\redshift-datasets\BLSCEWAG2016' 

gzPath = pd.DataFrame(columns=['Path'], dtype=object) 
for path, subdirs, files in os.walk(adcPath): 
for name in files: 
if name.endswith('.gz'): 
gzPath = gzPath.append(path) # Want to insert to dataframe gzPath to export in csv 

gzPath = gzPath['Path'].unique() 
exportPath = r'D:\Sunil_Work\temp8' + '\\Path.csv' 
gzPath.to_csv(exportPath) 

回答

1

您可以使用glob功能glob模块中获取所有.gz文件:

import glob 
files = glob.glob(r'\\ADC\redshift-datasets\BLSCEWAG2016\**\*.gz', recursive=True) 

然后,创建数据帧,并调用df.unique

gzPath = pd.DataFrame(files, columns=['Path'], dtype=object)['Path'].unique() 

保存到CSV:

exportPath = r'D:\Sunil_Work\temp8' + '\\Path.csv' 
gzPath.to_csv(exportPath)  
+0

@coldspeed,感谢响应。但我可以给路径:adcPath = r'\\ ADC \ redshift-datasets \ BLSCEWAG2016',我想要从提到的路径中获取并非全部 –

+0

但是,如果子文件夹存在,它会给出空白,它只有在我给直接文件夹链接包含.gz文件 –

+0

@faithon好吧...编辑我的答案。用'glob'使用'递归'标志。 –

相关问题