Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37

Работа с большим массивом файлов

19.12.2017, 12:30. Показов 4985. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача удалить Файлы из папки по списку txt файла. Пробовал реализовать данную задачу при помощи cmd, но как я пологаю больше 50000 строк он не читает.
Если более предметно: в папке лежит 4 500 000 файлов и есть собранный список с 4 000 000 строками. Нужно чтобы проооамма по названию вычисляла файл и удаляла его из папки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2017, 12:30
Ответы с готовыми решениями:

Работа с большим массивом
Всем привет. С шарпах я почти не бум-бум и по этому задаю сей смешной и простой вопрос. Как мне засунуть эти числа в двумерный массив? ...

Работа с большим массивом xml
В рабочих целях появилась необходимость произвести сверку xml файлов со списком. В списке первоначальном 4,5 млн строк с записями, файлов...

Некоторые действия над не большим массивом
Нужна помощь в написании программы, которая выполняет ряд действий над массивом. Начало я написал, как вы можете увидеть ниже, и так нужно...

82
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 10:41  [ТС]
Студворк — интернет-сервис помощи студентам
YuS_2, Запустил ваш скрипт, пока что открылся только экран командной строки и мелькающая "_". Через 5 минут выкинул уведомление о недостатке памяти.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 10:56
maksimkaa пишет - "Через 5 минут выкинул уведомление о недостатке памяти". YuS_2, вот поэтому я, учитывая 4М записей и предложил вариант с Get-Content -ReadCount

Так же, для решения этой проблемы хорошо подходит вариант предложенный volodin661 - [System.IO.File]::ReadLines
0
 Аватар для volodin661
7180 / 2357 / 354
Регистрация: 10.12.2013
Сообщений: 8,162
20.12.2017, 10:57
Попробуй #32, не вижу ни одной причины, чтобы не отработало.
1
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 11:02
Вот ещё вариант, гарантированно не тратящий память при работе с огромными текстами:

PowerShell
1
2
$reader = [System.IO.File]::OpenText($file)
while (!$reader.EndOfStream) {$str = $reader.ReadLine()}
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 11:25  [ТС]
KDE777, Либо я не понимаю что то, либо что то ещё, но как его запускать?)))
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
20.12.2017, 11:33
maksimkaa, Вы бы уже почитали хотя бы основы.
День прошел...
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 11:36
Цитата Сообщение от maksimkaa Посмотреть сообщение
Либо я не понимаю что то, либо что то ещё, но как его запускать?)))
PowerShell
1
2
$reader = [System.IO.File]::OpenText("C:\Temp\file_list.txt")
while (!$reader.EndOfStream) {Remove-Item -Path "C:\Temp\_Files\$($reader.ReadLine())" -Force}
Но вам и без этого уже предложили несколько гарантированно работающих вариантов. С чем у вас до сих проблема?

Кстати, в списке есть имена файлов на кириллице?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 11:43
Цитата Сообщение от KDE777 Посмотреть сообщение
YuS_2, вот поэтому я, учитывая 4М записей и предложил вариант с Get-Content -ReadCount
У меня этот вариант надолго завис в работе, а терпения, чтобы дождаться окончания, у меня не хватило, потому и предложил немного другой код, который у меня отработал ... при этом Ваш код даже не попытался удалить файлы, совсем ни одного, разбираться в причинах не стал.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 11:50  [ТС]
KDE777, Там везде Кириллица.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 12:00
Цитата Сообщение от YuS_2 Посмотреть сообщение
У меня этот вариант надолго завис в работе, а терпения, чтобы дождаться окончания, у меня не хватило, потому и предложил немного другой код, который у меня отработал ... при этом Ваш код даже не попытался удалить файлы, совсем ни одного, разбираться в причинах не стал.
Как я уже объяснял выше, необходимо указывать ReadCount в соответствие с возможностями вашего железа. Ставите 10 вместо 1000 и дожидаться начала удаления не придётся.

Цитата Сообщение от maksimkaa Посмотреть сообщение
Там везде Кириллица.
Существенное дополнение, тогда какой из этих вариантов выводит на экран корректные имена?

PowerShell
1
2
3
4
5
6
#1
gc "C:\Temp\file_list.txt" -Encoding Default
#2
gc "C:\Temp\file_list.txt" -Encoding Unicode
#3
gc "C:\Temp\file_list.txt" -Encoding Ascii
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 12:03  [ТС]
KDE777, Если запускать просто файл с расширением ps1, то просто чёрный экран. Через isp я ещё не пробовал сегодня запускать.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 12:11
Цитата Сообщение от maksimkaa Посмотреть сообщение
Если запускать просто файл с расширением ps1, то просто чёрный экран
Как бы это не запускали, если указать вместо "C:\Temp\file_list.txt" ваш список (путь и имя), то на экране должно выводится содержимое текстового файла.

PowerShell
1
gc "C:\Temp\file_list.txt" -Encoding Default -ReadCount 1
Цитата Сообщение от maksimkaa Посмотреть сообщение
Через isp я ещё не пробовал сегодня запускать.
А что мешает?

Я вам ещё вчера написал - "И лучше сначала сделать тестовую папку и отработать выполнение на ней". Неужели трудно сделать папку с десятком файлов и проверить работу предложенных вам вариантов???
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 12:20  [ТС]
KDE777, Код из последнего сообщения к какой программе относится?
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 12:23
Цитата Сообщение от maksimkaa Посмотреть сообщение
Код из последнего сообщения к какой программе относится?
"Windows > Администрирование Windows > PowerShell"

0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 12:24  [ТС]
KDE777, К скрипту из какого сообщения?
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 12:29
Цитата Сообщение от maksimkaa Посмотреть сообщение
К скрипту из какого сообщения?
Ни к какому. Просто выполните это, чтобы проверить, что кодировка вашего списка понятна для PS
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 12:30  [ТС]
KDE777, А с кириллицей что?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 12:34
Цитата Сообщение от KDE777 Посмотреть сообщение
дожидаться начала удаления не придётся.
Ну, не знаю, возможно... тут ещё вопрос какой именно код запускал ТС, ибо:
PowerShell
1
2
3
4
function test {
    process {"Процесс: $_"}
}
1..100|test
- по конвееру передает данные по мере считывания, а не дожидаясь получения всего и сразу... т.е., по идее, память не должна безбожно расходоваться...
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 12:42
Цитата Сообщение от maksimkaa Посмотреть сообщение
А с кириллицей что?
Всё с ней отлично.

Для продолжения конструктивной беседы, ответьте прежде вы на вопросы из #31 и #50

Добавлено через 5 минут
Цитата Сообщение от YuS_2 Посмотреть сообщение
Ну, не знаю, возможно... тут ещё вопрос какой именно код запускал ТС
Я тут не спорю. Что и как запускает maksimkaa из всего здесь предложенного понять очень трудно , но ваш вариант из #34 - remov $(gc $lst) - точно не учитывал возможный расход памяти.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 12:51
Цитата Сообщение от KDE777 Посмотреть сообщение
точно не учитывал возможный расход памяти.
Согласен. И даже более того, он преднамеренно использует наибольший расход на считывание всех данных и размещение их в памяти (из расчета на ускорение)... но, видимо, ресурсы, всё же, не бесконечны, увы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2017, 12:51

Vuejs / vuex с большим массивом данных
Всем привет, Разбираясь с vuex(laravel 5.7 / Vuejs 2.6 / "vuex": "^3.1.0"), не нашел в мануалах ответов на некоторые вопросы и...

Хелп зависает прога с большим массивом, STACK_SIZE в CoIDE
Здравствуйте! Для теста написал программу мигающую светодиодом, она работала нормально но когда попытался создать массив с 200...

Vector или new при работе с большим массивом данных?
Подскажите, что лучше использовать (с точки зрения быстродействия) при работе с большим массивом данных - vector или динамический массив?...

Нарушение прав доступа при чтении при работе с большим массивом
Здравствуйте. Пытаюсь заполнить большой массив, вроде правильно объявил его, но на разных итерациях (от i=92106 и выше ...) появляется...

"Параллельные" вычисления над большим массивом данных
Есть массив данных (под 500к), над ними нужно провести вычисления. Вычисления не самые быстрые, и я хотел бы воспользоваться пулом потоков....


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru