import glob
list = glob.glob(r'*abc*.txt') + glob.glob(r'*123*.txt') + glob.glob(r'*a1b*.txt')
for i in list:
print i
Run Code Online (Sandbox Code Playgroud)
此代码用于列出当前文件夹中名称中包含"abc","123"或"a1b"的文件.如何使用一个glob来实现这个功能,谢谢
我有一个这样的项目:
root
|-incl1
|-incl2
|- ...
|-excl1
|-excl2
|- .gitignore <-- keep this one
|- (other files) <-- exclude them
Run Code Online (Sandbox Code Playgroud)
我需要编写gulp.src()包含所有文件夹的文件excl1,excl2 但保留.gitignore文件.
这是我的代码不起作用:
gulp.src([
baseDir + '/**',
'!' + baseDir + '/{excl1, excl1/**}'
'!' + baseDir + '/excl2/{**, !.gitignore}' // <-- doesn't work
], {dot: true})
Run Code Online (Sandbox Code Playgroud) 我有一个服务器,在各种文件夹,子文件夹和子子文件夹中有很多文件.
我正在尝试创建一个search.php页面,用于在整个服务器中搜索特定文件.如果找到该文件,则返回位置路径以显示下载链接.
这是我到目前为止所拥有的:
$root = $_SERVER['DOCUMENT_ROOT'];
$search = "test.zip";
$found_files = glob("$root/*/test.zip");
$downloadlink = str_replace("$root/", "", $found_files[0]);
if (!empty($downloadlink)) {
echo "<a href=\"http://www.example.com/$downloadlink\">$search</a>";
}
Run Code Online (Sandbox Code Playgroud)
如果文件在我的域名的根目录内,脚本工作正常...现在我正在尝试找到一种方法使它也扫描子文件夹和子子文件夹,但我被困在这里.
我在大型硬盘上乱码python中的文件查找.我一直在看os.walk和glob.我经常使用os.walk,因为我发现它更整洁,似乎更快(对于通常的大小目录).
有没有人对他们有任何经验,可以说哪个更有效率?正如我所说,glob似乎更慢,但你可以使用通配符等,就像walk一样,你必须过滤结果.以下是查找核心转储的示例.
core = re.compile(r"core\.\d*")
for root, dirs, files in os.walk("/path/to/dir/")
for file in files:
if core.search(file):
path = os.path.join(root,file)
print "Deleting: " + path
os.remove(path)
Run Code Online (Sandbox Code Playgroud)
要么
for file in iglob("/path/to/dir/core.*")
print "Deleting: " + file
os.remove(file)
Run Code Online (Sandbox Code Playgroud) 我的同事Ryan带着他的Bash脚本中的一个错误来找我,我发现了这个测试的问题:
$ mkdir ryan
$ mkdir ryan/smells-bad
$ FOO=ryan/smells-*
$ echo $FOO
ryan/smells-bad
$ touch $FOO/rotten_eggs
touch: cannot touch `ryan/smells-*/rotten_eggs': No such file or directory
Run Code Online (Sandbox Code Playgroud)
由此我推断,在echo命令期间发生了globbing,而不是在创建变量FOO时.
我们有一些解决方法,按照不正常的降序排列:
touch `echo $FOO`/rotten_eggs
Run Code Online (Sandbox Code Playgroud)
要么:
pushd
cd $FOO
touch rotten_eggs
popd
Run Code Online (Sandbox Code Playgroud)
但两者都不令人满意.我错过了一招吗?
我想使用一个.gitignore文件忽略所有以句点开头的文件夹(linux的隐藏文件夹).
我无法弄清楚语法,但我确信它很简单.
怎么做的?
我想在以下模式中检索此模式后面的所有匹配路径vector<string>:
"/some/path/img*.png"
Run Code Online (Sandbox Code Playgroud)
我怎么能这么做呢?
/ Users/smcho/Desktop/bracket/[10,20]目录有"abc.txt",但是当我运行这个Python代码时
import glob
import os.path
path1 = "/Users/smcho/Desktop/bracket/\[10,20\]"
pathName = os.path.join(path1, "*.txt")
print glob.glob(pathName)
Run Code Online (Sandbox Code Playgroud)
它返回一个空列表.
我试图检索目录中的所有图像,包括所有子目录.我目前正在使用
$images = glob("{images/portfolio/*.jpg,images/portfolio/*/*.jpg,images/portfolio/*/*/*.jpg,images/portfolio/*/*/*/*.jpg}",GLOB_BRACE);
Run Code Online (Sandbox Code Playgroud)
这有效,但结果如下:
images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg
Run Code Online (Sandbox Code Playgroud)
我希望它一次做一个完整的目录分支,结果如下:
images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,欢呼!
PS如果我可以将所有子目录放在投资组合下而不必使用通配符明确说明每个目录,那也是很棒的.
我使用grunt将所有较少的文件转换为css文件,使用:
less: {
development: {
files: {
"css/*.css": "less/*.less"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于版本0.3.0,但现在我已升级到v0.4.0,它不再起作用了.
以下代码(在目标中不使用*)适用于这两个版本,因此问题在于目标文件上的星号.
less: {
development: {
files: {
"css/test.css": "less/*.less"
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?