簡體   English   中英

如何打開與子目錄中的模式匹配的文件

[英]how to open files that match a pattern in a subdirectory

您好,我在子目錄中查找和打開文件時遇到問題。 我有幾個不同的文件,例如:
mouse_1_animal.txt
mouse_2_animal.txt mouse_3_animal.txt

所以我想在工作目錄的子目錄中找到所有這些文件並打開它們並對這些行做一些事情。 這是我的嘗試:

i=1
for path, subdirs, files in os.walk(root) :
    for file in files :
        if file == "mouse_{0}_animal.txt".format(i) :
            #do something
            i = i + 1

但顯然它沒有找到所有文件,所以我想知道這是否是我用來查找錯誤文件的方式。

pythonic方式:

import glob
for f in glob.glob('./subDir/mouse_*_animal.txt'):
    # do_something
import fnmatch
import os
src = 'sourceDirPath'
for root, dirnames, filenames in os.walk(src):
  for filename in fnmatch.filter(filenames, 'mouse*.txt'):
      #do something
        i = i + 1

對於較舊的 python 版本,您可能想嘗試使用 glob 而不是 fnmatch

好的,我已經解決了我的問題

 file_list = []
 for name in glob.glob('./subDir/mouse_*_animal.txt'):
    file_list.append(name)
 for i in range(len(file_list)+1):
     if './subDir/mouse_*_animal.txt'.format(i) in file_list:
        #do something 

我會提出這樣的建議。 從文件創建一個字符串列表,將它們連接在一起並寫入。

import glob


def read_file(filename):
    with open(filename) as f:
        return f.read()


data = [read_file(f) for f in glob.glob('file*.txt')]
conc = "\n>>>>>>>\n".join(data)
with open('output', 'w') as f:
    f.write(conc)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM