代码之家  ›  专栏  ›  技术社区  ›  DaveC426913

打开所有匹配regex-python的文件

  •  0
  • DaveC426913  · 技术社区  · 6 年前

    我想打开并操作一个目录中的所有文件,扩展名是编号的(例如.342)。我的regex是“([0-9]{3})”,我将把它们合并到一个文件中,然后在输出新文件之前对它们进行处理。

    我不知道我应该给正则表达式输入什么。我知道我想给它提供dir文件的列表。我想我首先遍历目录中的每个文件,只将匹配的文件放入matchlist中,然后遍历matchlist并打开它们。

    (我看过很多例子。)

    这就是我目前的处境。

    import glob, os, re
    
    Path = "data"
    os.chdir(Path)
    
    matchlist = re.search('(.[0-9]{3})', file )
    
    for file in glob.glob(matchlist):
        with open(file) as fp:
            for line in fp:
                print(line.strip())
    
    0 回复  |  直到 6 年前
        1
  •  2
  •   0x5453 Yuki    6 年前

    请记住 globs 使用与regex不同的语法。

    for filename in os.listdir():
        if re.search(r'(\.[0-9]{3})', filename): 
            # ... 
    

    或者:

    for file in glob.glob('./*.[0-9][0-9][0-9]'): 
        # ...