import subprocess
def listDataPath(self):
cmd = 'dir ' + self.OriginalData_path.replace('/','\\')
files = subprocess.check_output(cmd,shell=True)
files = str(files, encoding = "GBK")
files = files.strip().split('\r\n')
regex = re.compile(r'.*\s(.+\.csv).*')
listFiles = []
for path in files:
match = regex.match(path)
if match:
listFiles.append(self.OriginalData_path+'/'+match.group(1))
return listFiles
Windows中显示文件夹子项目的命令式“dir ”,之后的文件夹路径只能使用“\”,而不可以使用“/”。
subprocess模块可以打开子进程,执行shell命令。check_output函数可以将命令的结果返回。
注意返回并不是一个str类型,而是一个byte object。需要使用str()转换之后才能分割。之后使用正则表达式筛选。