Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 21.09.2015
Сообщений: 6

Можно ли в названии записываемого/считываемого файла использовать переменную?

30.08.2019, 09:13. Показов 1685. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Столкнулся с казалось бы несложной проблемой, но решения уже давно не могу найти. Пользую Python_3.7.2.rc1 win32.



Допустим имеется следующая функция:

Python
1
2
with open("Distanse_X___Beta_Y___Radius_Z.txt", 'a') as f:
    np.savetxt(f, some_array)
Вместо букав X, Y и Z написанных выше, мне нужно подставлять считаемые в программе ранее параметры, чтоб файлы выходящие правильно именовать, для дальнейшей с ними работы Судя по всему, стандартными средствами (типа with open()) нельзя этого сделать.

А файлов таких у меня будет от 10 до 25 тысяч, поэтому их по названиям ещё как-то считывать будет нужно.

И отсюда вопросы:
Можно ли записывать и считывать таким образом файлы на питоне в принципе и, если да, то как это сделать?
А если не в python, то где такой инструмент имеется? Не может же быть, что такого никто-никогда не использует.



з.ы.
Знаю реальное, но крайне неудобное решение, которое не является ответом на мой вопрос, но приемлемо для решения проблемы. Запишу его дабы предостеречь камрадов советовать его:
Записывать всё в один, два--десять--двадцать--обозримоеколичествофайлов файлов и просто отдельной строкой писать параметры внутрь файла перед или после данных, и потом выуживать данные по этим записям параметров. Однако данных у меня тьма и эти 10-25 тысяч потенциально отдельных файлов, которые будут весить примерно от 100кбайт до 10мбайт, выльются в один очень жирный файл работать с которым будет неудобно, если вообще возможно, ведь в оперативную память нужно всё как-то передать.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2019, 09:13
Ответы с готовыми решениями:

Каждый элемент считываемого файла записать в новую переменную
Дан файл со строкой из чисел, разделенных пробелами: 2 32 43 5 98 Нужно считать этот файл и записать каждое число в свою переменную: a=2,...

Можно ли в названии массива а1() заменить цифру 1 на переменную
можно-ли в названии массива например а1() заменить цифру 1 на переменную для того чтобы использовать меньшее количество циклов ...

Как можно определить переменную в файле configure.in,чтобы её можно было использовать в Makefile?
Ситуация такая - В проекте конфигуратор программы используется только для проверок на наличие программ/библиотек,Automake не...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
30.08.2019, 10:00
Лучший ответ Сообщение было отмечено d-o-o-physical как решение

Решение

Цитата Сообщение от d-o-o-physical Посмотреть сообщение
Знаю реальное, но крайне неудобное решение,
странное какое то решение, почему просто список всех имен не хранить и его не перебирать, открывая по одному?

Цитата Сообщение от d-o-o-physical Посмотреть сообщение
Можно ли записывать и считывать таким образом файлы на питоне в принципе и, если да, то как это сделать?
можно, а не рано за тысячи файлов взялись, если этого не знаете?
вот абсолютно синтетический пример, я создал два файла
Distanse_1___Beta_1___Radius_1.txt
Distanse_2___Beta_2___Radius_2.txt

так можно и другие параметры подставлять
Python
1
2
3
for number in range(1,3):
    with open(f"Distanse_{number}___Beta_{number}___Radius_{number}.txt") as file:
        print(file.name)
Добавлено через 4 минуты
Цитата Сообщение от d-o-o-physical Посмотреть сообщение
some_array
заранее скажу - если в этом сам-аррее только инты или флоаты, то лучше, легче (по памяти) и быстрее использовать array
1
2 / 2 / 0
Регистрация: 21.09.2015
Сообщений: 6
08.09.2019, 13:50  [ТС]
странное какое то решение
Согласен. Всё должно было оказаться проще.
почему просто список всех имен не хранить и его не перебирать, открывая по одному?
Данное решение -- очевидно, но в том-то и дело, что не понимал как его реализовать.



а не рано за тысячи файлов взялись, если этого не знаете?
Программирую сугубо в моих узконаучных целях. Тысячи файлов обрабатывать не сложнее чем один, если есть надёжный метод сортировки, который, с помощью предоставленного вами знания, несложно будет теперь написать.

Обычно мои обсчитываемые задачки не требуют ничего кроме базовых навыков программирования и понимания численного метода. Да и текущий вопрос явно за рамки примитива не выходит. Хотя ответ на него найти не смог. Похоже зациклился и криво гуглил. Хотя до подхода, что вы написали можно было и логически дойти.



Вобщем, спасибо, вы очень помогли! Это даст ход работе, а то всё руки не доходили до неё.
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
08.09.2019, 14:36
Цитата Сообщение от d-o-o-physical Посмотреть сообщение
Программирую сугубо в моих узконаучных целях.
беру свои слова назад, готов помогать и в дальнейшем)
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
09.09.2019, 08:47
Если вы будете сохранять в таком виде, то при парсинге названия придется извращаться:

Примеры:
Distanse_1___Beta_12___Radius_123.txt

Distanse_1234___Beta_12345___Radius_1234 56.txt

Distanse_1234567___Beta_12345678___Radiu s_123456789.txt
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2019, 08:47
Помогаю со студенческими работами здесь

Как можно определить последние три символа в названии файла до точки?
Всем привет, никак не могу придумать, как можно определить последние три символа в названии файла до точки. название фала имеет...

Изменение записываемого файла
Программа постоянно записывает некоторые значения в файл с именем "file1.txt". При выполнении некоторого условия значения должны начать...

меняющиеся название записываемого файла
TStringList * listR = new TStringList(); for (int i = 0; i < k; i++) { // здесь я заполняю этот listR цифрами } ...

Ограничение на размер записываемого файла
Добрый день, есть такая проблема: программа пишет данные в файл, нужно сделать чтобы при достижении 300 кб она начинала писать новый файл в...

Чтение постоянно записываемого файла
написал некий код, который в случае обнаружения в строке набор символ отправляет запрос. Также помимо чтения лога, код считывает обновления...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru