0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 10
1

Прочитать файл, проверить содержимое и отредактировать

03.02.2016, 19:50. Показов 9189. Ответов 3

Author24 — интернет-сервис помощи студентам
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался, язык Python 2.7

Кратко:
У нас создается Logфайл - ruta.txt путь к которому знаем, текст которого при создании всегда разный, файл нужно прочесть, и если находим точное совпадение строки номер 3 (In God i trust), значит файл нужный, работаем дальше с ним. Если нету такой строки, то файл удаляем. После генерации нового файла повторяем цикл поиска нужной строки.

Задача 1:
По известному нам пути генерируется файл "/homies/kijon/work/ruta.txt" в искомом нами файле строка номер 3 имеет вид In God i trust

код задачи №1:
Python
1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: UTF-8 -*-
basefile = '/homies/kijon/work/ruta.txt'
timelogruta = '/homies/kijon/work/timelog.txt'
 
import sys
temp2 = sys.stdout.write
sys.stdout = open(timelogruta, 'a') #открываем файл timelog.txt для записи туда строки номер 3 из файла ruta.txt
with open(basefile, 'r') as f:
  data = f.readlines()[3] #читаем строку номер 3
print data
sys.stdout.close()
sys.stdout = temp2
#Далее предполагалось проверять полученную строку в файле timelog.txt для проверки на совпадение строки вида In God i trust - если значение совпадет, то данный проверяемый файл ruta.txt тот, что нам нужен, если нет, то мы должны его удалить, и начать круг заново.
#как это сделать, не могу сообразить.

Задача 2:
После того как мы нашли искомый файл ruta.txt, в нем нужно будет заменить еще несколько строк, номера которых мне известно.
а) К примеру прочесть строку 10 и заменить ею строку 11
б) Прочесть строку 20 и заменить ею строку 21
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2016, 19:50
Ответы с готовыми решениями:

Записать в текстовый файл содержимое Edit, и прочитать содержимое файла в Memo
Создать приложение которое создает текстовый файл текстовый файл text.txt записывает в него текст...

Прочитать содержимое dbf (файл SER.Dbf). И вывести содержимое нескольких полей
Всем привет) Можете пожалуйста помочь, может кто хорошо разбирается в работе с dbf файлами......

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

Прочитать файл и вывести его содержимое на экран
Программа выводит нужный текст из программы. Ну при этом еще выдает ошибку, как ее убрать? .model...

3
23 / 23 / 14
Регистрация: 01.05.2015
Сообщений: 180
04.02.2016, 06:57 2
Лучший ответ Сообщение было отмечено sayiko как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import os
 
def replace_word():
    temp = 0
    temp_list = []
    word = "строка-образец"
    filename = 'example.txt'
    with open(filename, 'r') as file:
        for item in file:
            temp += 1
            if temp == 3:
                if word in item:
                    print ("ok")
                else:
                    print ("error")
                    os.remove(filename)
                    return 0
 
            temp_list.extend([item])
                        
    temp_list[5] = temp_list[3] #здесь указываем какую строку заменить
    
    with open(filename, 'w') as file:
        for item in temp_list:
            file.write(item)
 
if __name__ == '__main__':
    replace_word()
1
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
04.02.2016, 10:03 3
Цитата Сообщение от ampermetr Посмотреть сообщение
as file:
зарезервировано в python2.

ограничений не было в задаче, поэтому

Python
1
2
3
4
5
6
with open('input.txt') as in_file, open('output.txt', 'w') as out_file:
    content = in_file.readlines()
    if content[2] == 'In God i trust\n':
        content[10] = content[9]
        content[20] = content[19]
        out_file.writelines(content)
0
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 10
04.02.2016, 18:54  [ТС] 4
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
def replace_word():
    temp = 0
    temp_list = []
    word = "строка-образец"
    filename = 'example.txt'
    with open(filename, 'r') as file:
        for item in file:
            temp += 1
            if temp == 3:
                if word in item:
                    print ("ok")
                else:
                    print ("error")
                    file.close() # !!! Вот тут, видимо в спешке, была пропущена строка, без нее файл не удаляется в следующей строке
                    os.remove(filename)
                    return 0
 
            temp_list.extend([item])
                        
    temp_list[5] = temp_list[3] #здесь указываем какую строку заменить
    
    with open(filename, 'w') as file:
        for item in temp_list:
            file.write(item)
 
if __name__ == '__main__':
    replace_word()
ampermetr -- благодарю вас, за то, что поняли именно полно мою проблему в виде Задачи 1 и Задачи 2. Вы решили именно так, как я хотел:
Определили по заданной строке на совпадение, нужный нам файл, сделали замену строк выбранной по номеру строки, таким же образом я смогу менять больше строк в этом же документе, а если искомая строка не подтверждает нужный документ, мы его удаляем.

Jabbson -- Ваш пример, работает в точности как я предполагал его решить изначально и показывает решение части моей задачи 1 и задачи 2 по замене строк, Но копирует все данные из одного в другой текстовый документ с которым и работаем потом, что я понял лишнее, можно и без этого. Реализован способ чуть иначе, что в особенности дает очередную возможность познать разные способы решения. Просто изначальный ход моей мысли, ввиду начинаний изучения Python 2.7 полон лишних действий.

Благодарю вас за быстрые и качественные ответы, удачи вам и процветания в ваших делах.
0
04.02.2016, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2016, 18:54
Помогаю со студенческими работами здесь

Сохранить содержимое ListBox в файл и прочитать обратно
Как сделать что бы при нажатии на кнопку в лист бокс записывался текст из текстбокс.И сохранялось...

Прочитать файл, и вывести содержимое файла в 1-ю видеостраницу
Здравствуйте уважаемые! Решил попробовать небольшой примерчик на основе выученного материала, и...

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

Прочитать текстовый файл и записать его содержимое в переменную
Пытаюсь считать файл: <!DOCTYPE html> <html> <head> <script> var tfile; var...

Прочитать текстовый файл и поместить его содержимое в массив
Всем привет. Есть структура struct MyPair { char Name;/*Фамилия*/ int Year;/*год...

Прочитать файл по ссылке и записать его содержимое в переменную BYTE
Здравствуйте! Нужна помощь. :wall: Всё ещё ломаю голову и не могу это реализовать, постепенно...

Открыть файл, прочитать его, и вывести содержимое в виде массива
Здравствуйте ! Я начинающий программист. пожалуйста подскажите в чём состоит ошибка. я подозреваю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru