Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/105: Рейтинг темы: голосов - 105, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 12

Работа с несколькими файлами сразу, лежащими в одной папке

09.08.2014, 11:40. Показов 19597. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. У меня такой вопрос: мне предстоит работать сразу с большим количеством текстовых файлов, лежащих в одной папке. Для их открытия нужно каждый раз писать f = codecs.open("название файла", "r", "utf8") или есть какой-либо другой способ получить данные сразу из всех файлов, лежащих в одной папке?
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2014, 11:40
Ответы с готовыми решениями:

Возможна ли работа с одной базой данных сразу несколькими пользователями
Здраствуйте, ситуация такая: в офисе установлен 1С УТ, необходимо из дома одновременно получать доступ к той базе данных, с которой сейчас...

Работа с файлами и каталогами. Удаление всех пустых строк у всех файлов лежащих в одной папке
В одной папке находится множество текстовых файлов *.txt Все файлы содержат некоторый текст Между строк каждого файла могут встречаться...

Работа с несколькими файлами
Имеются два типизированных файла одинакового размера, элементами которых являются отдельные символы. Выяснить, совпадают ли их элементы....

11
26 / 26 / 5
Регистрация: 14.05.2014
Сообщений: 250
09.08.2014, 12:36
цикл
Python
1
2
3
4
5
g = ''
l = ['1','2','3'] #имена файлов
for i in l:
    f = open(i,'r','utf8')
    g += f.readlines()
Добавлено через 10 минут
Python
1
2
3
4
5
6
7
8
import os
dir = '/dir/temdir/' # указываем нашу директорию
g = ''
l = os.listdir(dir)
#l = ['1','2','3'] #имена файлов
for i in l:
    f = open(i,'r','utf8')
    g += f.readlines()
вот так полнее
3
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 12
09.08.2014, 19:21  [ТС]
огромное спасибо!!!
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
10.08.2014, 22:51
tutunak, а закрывать файлы будет вася пупкин?
Python
1
2
3
4
5
6
7
8
import os
dir_ = '/dir/temdir/' # указываем нашу директорию
g = ''
l = os.listdir(dir_)
#l = ['1','2','3'] #имена файлов
for i in l:
    with open(i, 'r', 'utf-8') as fd:
        g += fd.readlines()
Добавлено через 1 минуту
да и переопределять python объекты плохо... можете нарваться на необъяснимое поведение...
4
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
11.08.2014, 04:23
Python
1
2
3
4
5
6
7
8
import fileinput
import os
 
dir_ = "путь_к_папке_с_файлами"
files = [os.path.join(dir_, name) for name in filter(os.path.isfile, os.listdir(dir))]
fi = fileinput.FileInput(openhook=fileinput.hook_encoded("utf-8"))
with fi(files=files) as fd:
    process(fd)
1
 Аватар для ilnurgi
141 / 141 / 38
Регистрация: 20.02.2012
Сообщений: 597
11.08.2014, 07:59
pyuser,
Python
1
2
3
4
5
files = [os.path.join(dir_, name) for name in filter(os.path.isfile, os.listdir(dir))]
 
# этот вариант не лучше?
 
files = [os.path.join(dir_, name) for name in os.listdir(dir) if os.path.isfile(name)]
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
12.08.2014, 03:39
ilnurgi, на вкус и цвет все карандаши разные :-). Букв столько же. Читабельность, ИМХО, одинакова
1
12.08.2014, 09:35

Не по теме:

Цитата Сообщение от pyuser Посмотреть сообщение
на вкус и цвет все карандаши разные
или цвет, некоторые на вкус одинковые

0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.08.2014, 09:52
pyuser, а скорость сравните)
Вот скрипт:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
import time
 
dir_ = os.path.dirname(__file__)
 
start = time.time()
files = [os.path.join(dir_, name) for name in filter(os.path.isfile, os.listdir(dir_))]
finish = time.time()
print "1", finish - start
 
start = time.time()
files = [os.path.join(dir_, name) for name in os.listdir(dir_) if os.path.isfile(name)]
finish = time.time()
print "2", finish - start
Вот директория( которая справо):


Вот результаты:


Вывод второй вариант пошустрее будет)
1
12.08.2014, 21:52

Не по теме:

блин старался, фигнёй страдал, а никто не оценил:resent:

0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
13.08.2014, 05:17
Цитата Сообщение от Wolkodav Посмотреть сообщение
а скорость сравните
Ни Ваш, ни мой варианты не корректны, если dir_ не совпадает с текущим каталогом :-(
Правильнее будет так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import os
from functools import partial
 
dir_ = r"c:\windows\system32"
join = partial(os.path.join, dir_)
 
start = time.time()
files = tuple(filter(os.path.isfile, map(join, os.listdir(dir_))))
print(time.time() - start, len(files))
start = time.time()
files = [name for name in map(join, os.listdir(dir_)) if os.path.isfile(name)]
print(time.time() - start, len(files))
результат:
Python
1
2
0.5220000743865967 2938
0.5209999084472656 2938
Ваш вариант на одну тысячную секунды быстрее, но значит ли это что он лучше?
1
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2014, 09:18
pyuser, второй всеравно шустрее)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2014, 09:18
Помогаю со студенческими работами здесь

Работа с несколькими файлами
Помогите пожалуста исправить ошибки //main.cpp #include <iostream> #include <conio.h> #include "menu.h" using namespace std;...

Работа с несколькими файлами
Имеются два текстовых файла с одинаковым числом строк. Переписать с сохранением порядка следования строки первого файла во второй, а...

Работа с несколькими файлами .h
Здравствуйте. Возникает проблема при работе с несколькими файлами .h. Суть в том, что в двух файлах я использую код для подключения...

Работа с несколькими файлами
Помогите, пожалуйста, с написанием программы!:) В файле (файл прикреплен) хранится текст книги, разбитый на страницы. Номер страницы...

Работа с несколькими файлами
Здравствуйте, при взаимодействии сразу с несколькими файлами возникает ошибка. Как можно пофиксить или обойти данный момент? #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru