我在目录中的文件是跨越数年的每月数据,其字符如0001-01-01、0001-02-01,...,0005-01-01,...,0010-12-01(yyyy -mm-dd)放在每个文件名的中间。
现在,我想排除0001 *文件。如果我写sorted(glob.glob(mydirectory/filename-000[!1]*))
仅给我0002 ~~ 0009文件,而不包括0010文件。
我应该怎么做才能仅排除0001 *文件?
如果我写的sorted(glob.glob(mydirectory/filename-000[2-9]*))
也只给了我0002-0009文件,我应该怎么做才能包括0010 *文件?
我也尝试过filename-{000[2-9],00[10-12]}*
,该方法不起作用。
谢谢,
只需将两个glob加在一起。
files = glob.glob(mydirectory/filename-000[!1]*) + glob.glob(mydirectory/filename-0010*)
这样做吧
import glob
from pprint import pprint
pprint(sorted(glob.glob("filename-???[!1]*")))
[?
是“任何字符”的地方,就像*
是“任何字符串”的语言]
对我来说,这很好用。
(stackoverflow) ~/PycharmProjects/stackoverflow ls -la filename-00*
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0001
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0002
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0003
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0004
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0005
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0006
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0007
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0008
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0009
-rw-r--r-- 1 dude staff 0 Dec 11 23:31 filename-0010
(stackoverflow) ~/PycharmProjects/stackoverflow # python test123.py
['filename-0002',
'filename-0003',
'filename-0004',
'filename-0005',
'filename-0006',
'filename-0007',
'filename-0008',
'filename-0009',
'filename-0010']
(stackoverflow) ~/PycharmProjects/stackoverflow #