有没有更好的方法在python中使用glob.glob来获取多种文件类型的列表,如.txt,.mdown和.markdown?现在我有这样的事情:
projectFiles1 = glob.glob( os.path.join(projectDir, '*.txt') )
projectFiles2 = glob.glob( os.path.join(projectDir, '*.mdown') )
projectFiles3 = glob.glob( os.path.join(projectDir, '*.markdown') )
Run Code Online (Sandbox Code Playgroud) 这是一个非常愚蠢的问题,但我还没有找到一个满意的答案:如何使用gulp globbing选择某个目录下所有子目录中的所有文件?
我试过了:
'./src/less'
'./src/less/'
'./src/less/*'
他们似乎都没有工作.
for i in $(ls);do
if [ $i = '*.java' ];then
echo "I do something with the file $i"
fi
done
Run Code Online (Sandbox Code Playgroud)
我想遍历当前文件夹中的每个文件,并检查它是否与特定扩展名匹配.上面的代码不起作用,你知道为什么吗?
我想在文件夹中打开一系列子文件夹,找到一些文本文件并打印一些文本文件行.我用这个:
configfiles = glob.glob('C:/Users/sam/Desktop/file1/*.txt')
Run Code Online (Sandbox Code Playgroud)
但是这也无法访问子文件夹.有谁知道如何使用相同的命令来访问子文件夹?
我目前正在使用gulp来调用bash脚本来清理我的dist/目录并将相应的文件移动到clean目录.我希望这可以用gulp完成,因为我不确定该脚本是否可以在非*nix文件系统上运行.
到目前为止,我正在使用gulp-clean模块来清理dist/目录,但是当我尝试将所需目录及其文件移动到dist文件夹时,目录为空.
var gulp = require('gulp'),
clean = require('gulp-clean');
gulp.task('clean', function(){
return gulp.src(['dist/*'], {read:false})
.pipe(clean());
});
gulp.task('move',['clean'], function(){
gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json'])
.pipe(gulp.dest('dist'));
});
gulp.task('dist', ['move']);
Run Code Online (Sandbox Code Playgroud)
调用带有正确目录gulp dist的dist/目录中的结果,但它们都是空的
$ ls dist/*
dist/manifest.json
dist/_locales:
dist/icons:
dist/page_action:
Run Code Online (Sandbox Code Playgroud)
如何将目录及其内容复制到该dist/文件夹?
我正在尝试传递gulp.src我想要它处理的文件数组.这是阵列的原样.
['bower_components/jquery/jquery.js',
'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
'bower_components/superscrollorama/jquery.superscrollorama.js' ]
Run Code Online (Sandbox Code Playgroud)
我发现gulp.src似乎并不喜欢这样,第三个元素没有通过最终目的地.
当我引入一些像这样的通配符时,我发现一切正常:
['bower_components/**/jquery.js',
'bower_components/**/js/greensock/TweenMax.min.js',
'bower_components/**/jquery.superscrollorama.js' ]
Run Code Online (Sandbox Code Playgroud)
但为什么?与globbing的工作方式有关吗?我用Google搜索但无法找到答案.
也许这不是globbing的预期目的,但它对我来说没有意义,它应该以这种方式工作.任何人都能解释一下吗?
我知道**/*.ext扩展到所有匹配的子目录中的所有文件*.ext,但是什么是类似的扩展,包括当前目录中的所有这些文件?
是否有标准(最好是Apache Commons或类似的非病毒)库用于在Java中进行"glob"类型的匹配?当我不得不在Perl中做类似的事情时,我只是将所有的" ."改为" \."," *"改为" .*"和" ?"改为" ."等等,但是我想知道是否有人做了为我工作.
类似的问题:从glob表达式创建正则表达式
我有一种情况,我正在尝试使用grunt来提取代码库,排除特定文件夹.
grunt在引擎盖下使用minimatch(类似于bsdglob)来匹配文件,但我似乎无法弄清楚如何进行文件夹的.gitignore样式排除.
我想要摄取这个:
ignoreme
并匹配这些:
/folder/path/here/to/something/ok.js
/another/folder/path.js
/test.js
Run Code Online (Sandbox Code Playgroud)
但不符合这些:
/folder/ignoreme/something.js
/folder/path/here/to/ignoreme/metoo/file.js
Run Code Online (Sandbox Code Playgroud)
这将匹配所有内容,包括ignoreme:
/**/*.js
Run Code Online (Sandbox Code Playgroud)
所以我想我可以这样做:
/**/!(ignoreme)/**/*.js
Run Code Online (Sandbox Code Playgroud)
但是匹配ignoreme文件夹中的文件.
我习惯了正则表达式,但似乎无法弄清楚如何重复模式或其他东西 - 我也试过像:
/(!(ignoreme)|*)*/*.js
Run Code Online (Sandbox Code Playgroud)
希望容器会重复,但这不起作用,它只是无法匹配所有东西.
有没有办法将正则表达式传递给grunt文件路径,或者让这个为我工作?
以下是我目前正在处理此问题的方法:
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
Run Code Online (Sandbox Code Playgroud)
如果在minimatch中可以删除文件夹,我仍然会感兴趣.
我有一个目录,里面有一堆文件:eee2314,asd3442...和eph.
我想要排除所有eph以该glob函数开头的文件.
我该怎么做?