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

Сортировка .txt документа в Python

24.11.2014, 22:27. Показов 20657. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле, ссылка на который дана на главной странице, содержится "мусор". Ваша программа должна проделать над этим файлом следующие действия

1. из всех строк убрать первую букву

2. отсортировать строки по возрастанию (по новой первой букве)

3. сохранить в новый текстовый файл строки в отсортированном порядке. Откройте этот текстовый файл в текстовом редакторе, который показывает номера строк и столбцов (можно прямо в Питоне, можно в Notepad++)


Помогите с кодом пожалуйста.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2014, 22:27
Ответы с готовыми решениями:

Как осуществить ввод из текстового документа input.txt и вывод через output.txt?
файлы лежат в проекте, помогите сделать ввод и вывод через текстовый документы, я не понимаю как. using System; using System.IO; ...

Python v.2.7 Как открыть второй 2.txt путь к которому прочитали из первого 1.txt
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался. Кратко: Прочесть путь к файлу .txt и по нему, открыть на редактирование...

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

5
34 / 34 / 6
Регистрация: 25.11.2014
Сообщений: 118
25.11.2014, 23:37
Работает как во втором так и в третьем Пайтоне
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
32
# -*- coding: utf-8 -*-
 
def process_lines(inpath, outpath):
    """
    В файле, ссылка на который дана на главной странице, содержится "мусор".
    Ваша программа должна проделать над этим файлом следующие действия
    1. из всех строк убрать первую букву
    2. отсортировать строки по возрастанию (по новой первой букве)
    3. сохранить в новый текстовый файл строки в отсортированном порядке.
        Откройте этот текстовый файл в текстовом редакторе, который показывает
        номера строк и столбцов (можно прямо в Питоне, можно в Notepad++)
 
    :param infile: Путь к "файлу с мусором"
    :param outfile: Путь к "очищеному файлу"
    :return:
    """
    assert type(inpath) == str, 'Bad path for input file'
    assert type(outpath) == str, 'Bad path for output file'
 
    infile = open(inpath, 'r')
    outfile = open(outpath, 'w')
    lines = []
    for line in infile:
        lines.append(line[1:])
    lines.sort()
    for line in lines:
        outfile.write(line)
    infile.close()
    outfile.close()
    return True
 
process_lines('lines.txt', 'sortedlines.txt')
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
26.11.2014, 04:36
Не стоит писать так:
Цитата Сообщение от reboot Посмотреть сообщение
Python
1
assert type(inpath) == str, 'Bad path for input file'
правильнее
Python
1
isinstance(inpath, str)
, правда эта конструкция проверяет только тип переменной, но ни как не факт его существования...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os
from tempfile import NamedTemporaryFile
 
def process_file(file_name):
    assert os.path.isfile(file_name), "Файл не найден"
    
    _ = NamedTemporaryFile()
    _.close() 
    out_file_name = _.name + ".txt"
 
    with open(file_name, "rt", encoding="utf-8") as fin,
            open(out_file_name, "wt", encoding="utf-8") as fout:
        all(map(fout.write, sorted(l[1:] for l in fin)))
 
    os.startfile(out_file_name)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.11.2014, 06:30
Цитата Сообщение от reboot Посмотреть сообщение
assert type(inpath) == str, 'Bad path for input file'
* * assert type(outpath) == str, 'Bad path for output file'
Я скажу больше, вообще все книги рекомендуют не привязывать свой код к какому-то конкретному типу, это неправильно и ограничивает возможности кода.
Вот, что на пример если я создам свой класс, который наследует str и что-то там подкорректирую, так как мне это надо, а потом передам в функцию. В вашей функции возникнет ошибка, но она там не должна возникать в этом случае. В общем это называется ставить самому себе палки в колёса.
Кстати assert вообще применяются только на стадии тестирования кода.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.11.2014, 06:47
Цитата Сообщение от pyuser Посмотреть сообщение
правда эта конструкция проверяет только тип переменной, но ни как не факт его существования
Факт существования кого?
Цитата Сообщение от tsar925 Посмотреть сообщение
Я скажу больше, вообще все книги рекомендуют не привязывать свой код к какому-то конкретному типу
На самом деле, it depends. Например, в процессе разработки какой-нибудь большой системы (хотя бы на этапе отладки) мне захочется удостовериться, что некоторая функция будет работать с типом, реализующим конкретный интерфейс, прежде, чем она начнет делать что-то деструктивное и потенциально упадет где-нибудь в середине из-за отсутствующего метода. Тут есть два варианта:
1. Мы требуем от клиента формального наследования от базового класса
2. Мы реализуем свой абстрактный класс и переопределяем __subclasshook__. В этом случае формального наследования не требуется, но уже появляется возможность проверить реализует ли класс некоторый интерфейс одним вызововом issubclass.

Другое дело, что мне, к счастью, не приходилось на практике сталкиваться с такими большими системами, требующими строгого контроля типов.
0
34 / 34 / 6
Регистрация: 25.11.2014
Сообщений: 118
26.11.2014, 11:57
Возможно топикстартеру нужно сдавать это задание в качестве лабораторной работы.
Чтобы у преподавателя не возникало лишних вопросов по изощрённым конструкциям, предложу просто маленький кусочек кода:
Python
1
2
3
4
5
6
7
8
9
infile = open('lines.txt', 'r')  # Файл с мусором
outfile = open('sortedlines.txt', 'w')  # "Очищенный" файл
lines = []
for l in infile:
    lines.append(l[1:])
lines.sort()
outfile.writelines(lines)
infile.close()
outfile.close()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2014, 11:57
Помогаю со студенческими работами здесь

Сортировка списка txt в другой txt
Допусти у нас есть файл в котором список email и моб телефонов , как отсортировать все телефоны в другой txt ... Если не сложно напишите...

Кодировки документа и txt
Работаю с txt файлом,в котором есть как русский так и английский текст. В какой он должен быть кодировке,чтобы с ним можно было работать?...

Сохранение документа txt
В общем программа открывает текстовый файл, редактирует его (просто переставляет местами 2 выбранных слова) и через контекстное меню...

Парсинг txt документа
Привет, не могу сообразить как сделать парсинг документов {txt}, я сделал легкий код, но он работает не корректно. Пример txt...

Импорт информации из документа (txt)
Доброго времени суток! Частенько для небольших подсчетов использую pascalABC, не сложные калькуляторы и тп. В этот раз нужно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru