在python中,如果要打开以“apl_”开头的所有文件,只需打开“apl *”即可。你如何在C ++中做类似的事情。
假设我有一个我知道的文件以“llll”开头,但后缀未知。我该如何打开它?
答案 0 :(得分:2)
答案 1 :(得分:2)
你不能只是在Python中“简单地打开”apl *“'。如果你试试这个:
open("apl*")
你会得到一个IOError - 除非你碰巧有一个字面名为“apl *”的文件。
在Python中有两种基本方法可以将它们转换为C ++。
首先:
[open(f) for f in glob.glob("apl*")]
在大多数非Windows平台上,glob.glob
会直接转换为POSIX函数glob
。不幸的是,在Windows上,它被称为_glob
,在所有版本的Windows上都不存在,并且有严重的限制。因此,您希望使用FindFirstFile和FindNextFile。链接页面上给出的示例应该向您展示如何操作。
第二
[open(f) for f in os.listdir(".") if f.startswith("apl")]
你可以再次使用FindFirstFile / FindNextFile迭代整个目录,然后过滤data-> cFileName是否以“apl”开头,但你也可以使用更清洁(更便携)的提升::文件系统:: directory_iterator。