Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
23 / 23 / 14
Регистрация: 01.05.2015
Сообщений: 180

Запись вывода в файл

30.08.2015, 08:39. Показов 3802. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять в чем причина - не получается записать полученные ссылки в файл. Вывод в консоль работает как положено.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import lxml.html
from lxml.html import parse
#~import sys
#~import urlparse
 
def main():
    work_url = "http://vk.com/joyreactor_ru"
    work_file = open("1.txt", "a+", encoding='utf-8')
    page = parse(work_url).getroot()
    hrefs = page.cssselect("a") 
    for row in hrefs:
        #~ print (row.get("href"))
        work_file.write(row.get("href"))
    work_file.close()
Получаю ошибку
File "10.py", line 43, in main
work_file = open("1.txt", "a+", encoding='utf-8')
TypeError: 'encoding' is an invalid keyword argument for this function
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2015, 08:39
Ответы с готовыми решениями:

Запись вывода в .txt файл
Добрый вечер! Необходима помощь с записью вывода в .txt файл. def Hanoi(n, A, C, B): if n!=0: Hanoi(n-1, A, B, C) ...

Запись вывода функции в файл
Мне нужно записать все значения итераций функции Euler в файл # n - количество итераций, h - шаг, (x, y) - начальная точка import...

Запись результатов в файл вместо вывода на консоль
Добрый вечер всем. Есть программа которая свой результат выводит в консоль. Мне необходимо сделать что бы результат в конце записывался в...

4
 Аватар для akzo
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
30.08.2015, 10:24
Потихоньку слезай с 2.7
Python
1
2
import codecs      
work_file = codecs.open("1.txt", "a+", encoding='utf-8')
Для третьего питона можно так и оставить и еще почитай про "with open(...) as file: " такая конструкция делает код более читабельным и гарантирует закрытие файла
1
23 / 23 / 14
Регистрация: 01.05.2015
Сообщений: 180
30.08.2015, 17:21  [ТС]
akzo,
спасибо, но теперь понимаю еще меньше, чем утром))
Исправил скрипт, все работало. Дописал в него еще функций, начал вылавливать ошибки и в итоге все пришлось вернуть к первому рабочему состоянию, но
1. первый запуск выдает только ошибку
2. второй запуск пишет в файл первые три ссылки(вместо примерно 20, которые должен) и выдает все ту же ошибку
Traceback (most recent call last):
File "12.py", line 41, in <module>
main()
File "12.py", line 36, in main
work_file.write(row.get("href"))
File "/usr/lib64/python3.4/codecs.py", line 711, in write
return self.writer.write(data)
File "/usr/lib64/python3.4/codecs.py", line 368, in write
data, consumed = self.encode(object, self.errors)
TypeError: Can't convert 'NoneType' object to str implicitly

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from lxml.html import parse
import codecs
 
def main(): 
    work_file = codecs.open("1.txt", "a+", encoding='utf-8')
    page = parse(work_url).getroot()
    hrefs = page.cssselect("a")
    for row in hrefs:
        work_file.write(row.get("href"))
        work_file.write("\n")
    work_file.close()
 
if __name__ == '__main__':  
    work_url = "http://vk.com/joyreactor_ru"
    main()
0
 Аватар для akzo
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
30.08.2015, 17:34
Насчет, того что 4 ссылки вместо 20 я не уверен,но попробуйте codecs заменить на io.
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
30.08.2015, 23:25
ampermetr, Ну как бы все тривиально, вот:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from lxml.html import parse
 
url = "http://vk.com/joyreactor_ru"
 
out = open("12", "a+", encoding='utf-8')
page = parse(url).getroot()
links = page.cssselect("a")
 
current_link = ''
for row in links:
    current_link = row.get("href")
    print(current_link)
    if current_link:
        out.write('{0}\n'.format(current_link))
out.close()
P.S раз используешь тройку, ни какие библиотеки для открытия файла импортировать не надо.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2015, 23:25
Помогаю со студенческими работами здесь

запись типизированный файл проверка ввода вывода
читается число byte, которое записывается в file of byte readln(number_victory); write(ini_victory,number_victory); - это часть...

Запись вывода команды Telnet в текстовый файл
Помогите написать батник. Есть АТС, с нее отчет можно снимать через телнет. Что получаем cmd открываеться командная стркоа telnet...

Запись данных в файл(потоки ввода и вывода)
Всем привет, попробовал написать программу записи данных(ввод с клавиатуры) в отдельный файл на &quot;Ж.Д.&quot; но не получилось, вот...

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru