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

Запись в файл нескольких строк

27.08.2012, 07:32. Показов 25896. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как реализовать запись в файл нескольких строк?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2012, 07:32
Ответы с готовыми решениями:

Запись в файл, состоящий из нескольких строк
мучаюсь все с той же программкой: Есть тестовый файл вида: INLINE : 233 XLINE : 202 668417.50000 565878.00000 995.87421 ...

Чтение нескольких строк из файла, выполнение над ними операций и обратная запись в файл
В файле есть несколько строк, например: 1) 2+3; 2) 4/2; 3) 5*6. Программа должна считать эти строки из файла и посчитать эти значения....

Запись в определённый файл нескольких заданных строк из выводимого в результате выполнения bat-файла текста
Здравствуйте буду благодарен если поможете Есть бат файл после его запуска на экран выходит информация из которого надо экспортировать...

27
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
27.08.2012, 08:26
В цикле, батенька, в цикле.

Python 2:

Python
1
2
3
4
5
>>> lines = ['first', 'second', 'last']
>>> with open('out.txt', 'w') as f:
...     for line in lines:
...             print >>f, line
...
(если надо, чтобы строки были в Юникоде, добавляем префикс `u` к литералам)

Для Python 3 нужно заменить последнюю строку на следующую:
Python
1
...             print(line, file=f)
Неплохо также указывать кодировку файла
3
Hack Unlock
 Аватар для machito
991 / 169 / 5
Регистрация: 23.01.2012
Сообщений: 3,223
Записей в блоге: 1
27.08.2012, 08:26
Цитата Сообщение от sanek1 Посмотреть сообщение
как реализовать запись в файл нескольких строк?
Nameless One ответит.
0
 Аватар для AciD
22 / 22 / 19
Регистрация: 25.10.2011
Сообщений: 122
28.08.2012, 07:09
with open('out.txt', 'w') as f: Можно узнать, что за 'w' в кавычках ?
А если бы мы открывали файл, с которого нужно было считать строки (in.txt), то какая буква была бы в кавычках:?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.08.2012, 07:12
AciD, второй аргумент функции open - это режим открытия файла. 'w' - открытие файла на запись, 'r' - открытие файла на чтение. См. help(open), help(file).
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 11:06
Здравствуйте. Подскажите пожалуйста, а если файл состоит из 100 строк и после каждых 10 строк надо вставить пустую строку?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.07.2019, 11:13
Damenikx, ну так считай записанные строки в цикле и добавляй когда надо
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 12:53
Особо ничего не получается, количество строк я посчитал, а вот как засунуть после каждой 10й строки - не понимаю.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.07.2019, 12:55
Damenikx, если счетчик равен 10 то вставь пустую строку и обнули счетчик и далее по циклу.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 13:12
Как это делается в теории я знаю, а как это написать на практике не понимаю.

Добавлено через 9 минут
Просто нельзя взять и перезапись, только в конце файла а мне надо каждую 10 строку. Значит сначала нужно всё прочитать "r" затем записать "а"
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
01.07.2019, 13:45
Значит сначала нужно все прочитать, отредактировать содержимое, а затем перезаписать "w" (если файл допустимых размеров).
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 15:27
Я об этом думал, только вот файлы по несколько тысяч строк

Добавлено через 1 час 34 минуты
Ребят, неужели никто не подскажет? у меня уже получилось вставить с самого начала и в середину, но как мне сделать это в цикле, чтобы через каждые 10 строк?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.07.2019, 15:51
Damenikx, несколько тысяч строк это ерунда, пара секунд работы пайтона.
Открываешь свой файл на чтение и начинаешь оттуда по строке считывать и считать, считанное записываешь в новый файл. Как только счетчик дочтик 10 добавляешь пустую строку.
Если все же нужно чтобы изменился исходный файл, то в конце переименовываешь новый. Или не пишешь в отдельный файл а все хранишь в списке и потом его заливаешь в исходный файл.
Читаем циклы, условия, чтение/запись в файл.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 16:55
Считывать с помощью redlines?

Добавлено через 7 минут
Я написал так:
Python
1
2
with open("one.txt","r") as rFile:
fr=rFile.readlines()
Добавлено через 52 секунды
Не понимаю как счётчик привязать

Добавлено через 12 минут
На словах всё понимаю, а как написать нет
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.07.2019, 18:12
Цитата Сообщение от Damenikx Посмотреть сообщение
На словах всё понимаю, а как написать нет
может тогда что-то почитать, Лутца например?
или ждать у кого есть время тебе помочь... я бы выбрал первое

Добавлено через 1 час 4 минуты
Damenikx, вот так например
первый блок контекста - это для меня, создаю файл на 30 строк без разрывов, у тебя текст уже есть
второй блок вставляет пустые строки каждые 10, третий записывает в файл. Внимание - он не добавляет в файл, а перезапишет его целиком, если там что то важное -сделай копию.
Python
1
2
3
4
5
6
7
8
with open("strings.txt", 'w') as file:
    [file.write(str(line) + '\n') for line in range(30)]
 
with open("strings.txt", 'r') as f:
    result = [line.rstrip() if index % 10 != 0 else line for index, line in enumerate(f.readlines(), 1)]
 
with open("strings.txt", 'w') as file:
    [file.write(line + '\n') for line in result]
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 21:02
Воу, воу. Профи, полегче. Спасибо, конечно, но это же Python для начинающих, а ты тут вывалил по сути всё готовое! Надо бы разобраться для себя. Спасибо!

Добавлено через 1 минуту
Python
1
for line in range (30)
Это конечно хорошо, но! А если мы не знаем количество строк?

Добавлено через 33 секунды
В любом случае буду разбираться. Без тебя я бы ещё наверное неделю бы тупил!

Добавлено через 37 секунд
Прошу прощения, не дочитал, всё понимаемо, первый блок создаёт файл со строками!
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.07.2019, 21:06
Цитата Сообщение от Damenikx Посмотреть сообщение
Прошу прощения, не дочитал, всё понимаемо, первый блок создаёт файл со строками!
да, первый блок - это я для себя писал, чтобы файл себе создать, у меня то нет твоего текста) ну и чтобы проверить.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
01.07.2019, 21:07
Кстати, Лутца я уже скачал, завтра начну
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
01.07.2019, 21:50
Nameless One, u - это устаревшая юникодовская кодировка, в питоне 3.Х по умолчанию используется современная юникодовская кодировка utf-8.

Добавлено через 16 минут
Цитата Сообщение от Damenikx Посмотреть сообщение
Кстати, Лутца я уже скачал, завтра начну
Может Вы конечно знаете, но на всякий случай скажу. У Лутца несколько учебных книг и книга справочник. Начинать нужно с книги

Лутц М. Изучаем Python (4-е издание, 2011)
затем перейти к книгам
Лутц М. Программирование на Python. Том 1 (4-е издание, 2011)
Лутц М. Программирование на Python. Том 2 (4-е издание, 2011)

Если появились новее издания, то выбирайте которое последнее.
2
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
02.07.2019, 12:40
Спасибо за подсказку!

Добавлено через 9 минут
Проверил, работает шикарно! теперь буду думать, как между пропущенной строкой воткнуть предыдущую и следующую запись. Например: у нас есть 10 строк, каждую третью строку пустая :
1
2
3
3

4
4
5
6

Добавлено через 23 секунды
Всем знатокам спасибо за помощь!

Добавлено через 9 минут
А ещё хочу попробовать добавить графическую оболочку, чтобы не в коде всё менять, а выбрать файл и на кнопочку

Добавлено через 4 часа 4 минуты
Тут вот какое дело. Проверил на маленьком файле - работает, а на большом не работает(((

Добавлено через 5 минут
Очень странно, если скопировать всё из большого файла в маленький - работает)))

Добавлено через 2 минуты
Хм, наверное дело в кодировке, хотя тут обычный файл txt

Добавлено через 2 минуты
У меня просто файлики в формате ANSI есть варианты как решить вопрос с кодировкой?

Добавлено через 48 секунд
Точнее Юникод
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.07.2019, 12:40
Помогаю со студенческими работами здесь

Запись нескольких строк в файл через компонент "Edit"
Доброго времени суток! Возникла небольшая проблема. Необходимо, к примеру, создать текстовый файл с пятью строками, которые вводятся...

Запись нескольких строк в БД
помогите пожалуйста с записью нескольких строк в базу данных. Имеется вот такая функция: function ans_add($type) { echo...

Сравнение строк в нескольких файлах excel, копирование несовпадающих строк и их вывод в сводный файл
Добрый день, только только начал разбираться с VBA в excel, поэтому прошу помощи (схожие темы находил, но не смог преобразовать их...

Запись нескольких строк из мемо в бд
Всем привет. Среда разработки c++ builder. C blob полями никогда не работал, подскажите как из мемо поля записать в БД примечание, которое...

Запись нескольких строк PHP, Postgre
Имеется страница создания контента, имеется опция radiobutton c четырьмя опциями, соответственно 1, 3, 6 и 12 месяцев. и есть поле месяц...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru