2 / 2 / 0
Регистрация: 26.05.2014
Сообщений: 46

Чтение и запись в один файл

28.10.2019, 10:52. Показов 5250. Ответов 47

Студворк — интернет-сервис помощи студентам
Текстовый файл
Телевизор Sony 20 18000
Стиральная машина Bosch 10 11000
Холодильник Indesit 10 500000
Стиральная машина Bosch 10 11000
Стиральная машина Bosch 10 11000
Стиральная машина Bosch 10 11000
Стиральная машина Bosch 10 11000

Есть один текстовый файл. В нем обозначены техника, кол-во и стоимость одной техники. В четвертый столбец надо ввести произведение стоимости и кол-ва.
С файлами в питоне работать не довелось к сожалению.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2019, 10:52
Ответы с готовыми решениями:

Чтение,шифрование и запись в один файл
Пишу программу шифрующую (CryptoAPI) файл,буфер - 1 килобайт,требуется сделать так чтобы чтение и запись происходили из/в один и тот же...

Чтение и запись в один и тот же файл с CreateFile
Добрый день. необходимо, чтобы можно было открыть файл, произвести из него чтение, и в процессе считывания при необходимости вносить...

FileStream или чтение и запись в один и тот же файл
Из темы уже можно было понять суть проблемы - есть файл и например из центра вырезается кусок путем накладывания на него данных что стояли...

47
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 12:43
Студворк — интернет-сервис помощи студентам
Я сделал так:

Python
1
2
3
4
5
with open('input.txt', 'r', encoding='cp1251') as f:
    for line in f.read().splitlines():
        text = line.rsplit(' ',2)
        name,kol,cena = text[0], text[1], text[2]
        prod = int(kol) * int(cena)
осталось перезаписать

Добавлено через 3 минуты
Я понимаю, что криво, но для себя потренироваться.
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.10.2019, 12:44
Да норм.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 12:46
На это я потратил 10 минут, а вот дальше, что-то я не пойму, как перезаписать то. Всё добавляет в конец последней строки, оно и понятно почему. Надо непросредственно в самом цикле сразу же и записывать, но вот что-то у меня не выходит
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.10.2019, 12:47
Для начала нужно закрыть файл и открыть заново на запись
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 12:51
Рыжий Лис, да, я пробовал, всё равно что-то не выходит, ладно, буду пробовать.
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 12:57
Damenikx, возможно следует обратить внимание на модификаторы доступа к файлу)
А ещё чтение и запись лучше вынести в отдельную функцию\метод, что бы данные читались, файл закрывался, данные писались, файл закрывался. Сразу же, а не спустя бизнес-логику.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.10.2019, 13:10
Рабочий пример перезаписи файла:
Python
1
2
3
4
5
6
7
8
9
10
11
filename = 'input.txt'
 
with open(filename, 'r') as f:
    text = f.read()
 
text2 = '''\
text3
text'''
 
with open(filename, 'w') as f:
    f.write(text2)
Добавлено через 3 минуты
Хотя удобнее писать в файл так:
Python
1
2
3
with open(filename, 'w') as f:
    for i in '123', '234':
        print(i, file=f)
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 13:53
Рыжий Лис, Alli_Lupin, это всё понятненько, только вот записывает всё в одну строку к последней строке. Я всё это пробовал, честное пионерское!

Добавлено через 2 минуты
Рыжий Лис, сделал, по-другому, записывает только одну строку
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 13:55
Damenikx, символ перевода строки?
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 13:58
Alli_Lupin, вот я про это сейчас читаю.
Я знаю, что символ переноса строки "\n", сейчас думаю, как его прикрутить
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 14:01
Damenikx, обычно используют в паре символы \n\r. Не помню, что из них что. Но с этим сочетанием у меня ассоциируются словосочетания "перевод строки" и "возврат каретки".
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 14:19
Alli_Lupin, получилось, но теперь первая строка сдвинута влево примерно на 3 монитора
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 14:24
Damenikx, отладчик - ваш лучший друг)
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 14:33
Alli_Lupin, да, я тут уже пытаюсь, как могу и чот не то, сейчас пожалуй заново начну
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 14:36
Damenikx, процесс хороший, интересный) Мне нравится)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.10.2019, 14:45
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
обычно используют в паре символы \n\r. Не помню, что из них что.
\n - новая строка
\r - возврат катерки

Писать файл можно по-разному.
A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.
Допустим, если записать в файл только \n, но не все windows-редакторы смогут корректно отобразить файл.

Добавлено через 1 минуту
. . .
New line depends on your OS:

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
1
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,249
28.10.2019, 14:58
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
\n - новая строка
\r - возврат катерки
точно, благодарю.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 15:54
Я сдаюсь. У меня не получается и я не могу допетрить.
0
28.10.2019, 15:59

Не по теме:

Damenikx, создайте новую темы и мы посмотрим. Ведь одна тема - один вопрос.

0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
28.10.2019, 16:03
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

УРААА!!! ПОЛУЧИЛОСЬ!!!

Python
1
2
3
4
5
6
7
8
9
with open('input.txt', 'r', encoding='utf-8') as f:
    full_file = f.read().splitlines()
    with open('input.txt', 'w', encoding='utf-8') as s:
        for text in full_file:
            text = text.strip()
            name, kol, cena = text.rsplit(' ', 2)
            slog = int(kol) * int(cena)
            all = (f'{text} {slog}')
            print(all,file=s)
Добавлено через 46 секунд

Не по теме:

Alli_Lupin, так а вопрос так и не был решён, по поводу файлов, зачем новая тема?



Добавлено через 1 минуту
Сразу прошу простить за именование переменных, просто у меня уже стул горел. Я хотел всё бросить, поэтому называл всё со злости.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2019, 16:03
Помогаю со студенческими работами здесь

Чтение и запись данных из множества ListBox в один файл.
Требуется помощь.Нужно сохранить Listbox1 и Listbox2 в txt,в гугле ничего такого не нашел,на вашем форуме есть,но только с Edit и Memo. ...

Запись и чтение объектов разных классов в один файл
Здравствуйте. Изучаю С++ по Лафоре. Дошёл до места, где объясняется, как записывать объекты разных классов в один бинарник. У Лафоре,...

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк)....

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru