Как читать разные файлы из разных каталогов с рисунком - PullRequest
0 голосов
/ 05 июня 2018

У меня есть структура каталогов:

--- main_dir
------ aaa
--------subaaa
----------file
------ xxx
--------subxxx
----------file
------ 111
--------sub111
----------file

и т. Д.

Все каталоги имеют разные имена, но FILE имеет одинаковое имя.Каждый файл имеет три строки.Мой вопрос: как прочитать эти три строки из каждого ФАЙЛА самым быстрым способом?

Я написал код для поиска файлов.Но до сих пор не знаю, как читать их все.Проверьте это:

import os

def list_files(dir):
    r = []
    for root, dirs, files in os.walk(dir):
        for name in files:
            r.append(os.path.join(root, name))
return r, print(r)
list_files('some_path)

Я хочу добиться чего-то подобного:

import os

def list_files(dir):
    r = []
    for root, dirs, files in os.walk(dir):
        for name in files:
            r.append(os.path.join(root, name))
    return r, print(r)
    with open(r[*]) as f:     #this is the question
    f.readlines()             #how to read all of the files
list_files('some_path)

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Я нашел решение для открытия ФАЙЛОВ, вот код:

import os

def list_files(dir):
    r = []
    for root, dirs, files in os.walk(dir):
        for name in files:
            r.append(os.path.join(root, name))
            with open(os.path.join(root, name)) as f:
                print(f.readlines())
    return r, print(r)


list_files('C:\gpdw-feeds')

Теперь у меня проблема со структурой.Как перечислить ТОЛЬКО файлы в последних подпапках?Пример:

---main_dir
----sub
-----file1
----sub_sub
-----file2

Я хочу читать только файл2, но мой код читает все файлы во всех подпрограммах.

0 голосов
/ 05 июня 2018

Чтобы эффективно найти каждый файл с именем 1.txt и распечатать его содержимое с префиксом имени файла, просто введите:

find . -name '1.txt' -exec awk '{print FILENAME, $0}' {} +

Если это не все, что вы хотите, отредактируйте свой вопрос, чтобы уточнить.

0 голосов
/ 05 июня 2018

Рассмотрите возможность использования:

import os

listOfFiles = os.listdir("the absolute path to main_dir")
for fileName in listOfFiles:
 print fileName
 # read the lines of fileName
 with open(fileName) as f:
   contentOfFile = f.readlines()
...