Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2022, 11:32   #1
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию Как убрать ошибку в скрипте ?

Win 10
IDLE (Python 3.10 64-bit)
-----------------------------
Есть такой скрипт:
Код:
# -*- coding: utf-8 -*-
import sys, time, urllib.request, urllib.parse, urllib.error;

t = '*****************************************************'
x = '* (C) 2015 - 2018 Aleksey S.Galickiy for ProxyTV RU *'
t = '*****************************************************'

tvg_autor = '"https://www.youtube.com/channel/UCQGGNWAIMrlmfMZN-oO3fPQ"'

def NewPlist(fileName, delay):
	print()
	count = 0
	total = 0
	http = 'http://'
	extInf = '#EXTINF:-1'
	
	try:
		openList = open(fileName+'.m3u', 'r', encoding='utf-8')
		for line in openList.readlines():
			if line.find(extInf) != -1: count += 1
			if count == 1 and line.find(http) != -1:
				try:
					udpx = line.split('/')
					urllib.socket.setdefaulttimeout(delay)
					stream = urllib.request.urlopen('%s%s' % (http, udpx[2]))
					print('UDPXY >>> %s <<< GooD\n' % udpx[2])
				except:
					print('UDPXY >>> %s <<< BaD\n' % udpx[2])
					print("Bye, bye people.")
					time.sleep(5)
					sys.exit()
		print('Count channel:', str(count))
		openList.close()
		
	except Exception as error:
		print("Error: %s\n" % error) 
		print("Bye, bye people.")
		time.sleep(3)
		sys.exit()

	count = 0
	openList = open(fileName+'.m3u', 'r')
	openNewList = open('new_%s.m3u' % fileName, 'w')
	openNewList.write('#EXTM3U tvg-autor="%s"\n\n' % tvg_autor)
	
	for line in openList.readlines():
		if line.find(extInf) != -1:
			extName = line.split(',')
			newLine = '%s,%s' % (extInf, extName[1])

		if line.find(http) != -1:
			count += 1
			ln = line.rstrip('\t\r\n')
			try:
				urllib.socket.setdefaulttimeout(delay)
				stream = urllib.request.urlopen(line)
				data = stream.read(8192)
				if len(data) == 8192:
					print('channel #%s >>> GooD' % count)
					openNewList.write(newLine)			
					openNewList.write(line)
					newLine = ""
					total += 1
				else:
					print('channel #%s >>> NoT' % count)
			except:
				print('channel #%s >>> BaD' % count)
				
	print('Total channel: %s' % total)

print('%s\n%s\n%s\n\n' % (t, x, t))	
filename = input("Input file name: ")

try:
	delay = float(input("Delay input(sec): "))
	if delay < 3: delay = 3
except: 
	delay = 3
	
NewPlist(filename, delay)
print("Bye, bye people.")
#time.sleep(3)
try:
	filename = input("OK?")
except:
	pass
Выдаёт ошибку:
Input file name: _5
Delay input(sec): 3

Count channel: 89
Traceback (most recent call last):
File "C:\Users\Пк\Desktop\verifyPlaylist \_verifyPlaylist.py", line 80, in <module>
NewPlist(filename, delay)
File "C:\Users\Пк\Desktop\verifyPlaylist \_verifyPlaylist.py", line 46, in NewPlist
for line in openList.readlines():
File "C:\Python\lib\encodings\cp1251.py" , line 23, in decode
return codecs.charmap_decode(input,self.er rors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 2493: character maps to <undefined>
Как её исправить ?

Последний раз редактировалось satfan; 13.01.2022 в 15:25. Причина: Вопрос решил. Спасибо
satfan вне форума Ответить с цитированием
Старый 13.01.2022, 12:22   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

При втором открытии тоже надо указать кодировку.
ForenLi вне форума Ответить с цитированием
Старый 13.01.2022, 12:27   #3
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Спасибо ForenLi
Я пока только начинаю изучать.
Подскажите какую строку править ?

Всё исправил. Спасибо.

Последний раз редактировалось satfan; 13.01.2022 в 15:27.
satfan вне форума Ответить с цитированием
Старый 13.01.2022, 12:31   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

У вас ошибка в 46 строке. Какой файл вы там читаете? Где его открываете?
ForenLi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать ошибку 404 VadimChekh Общие вопросы Web 2 09.07.2019 06:27
Как убрать привязку к домену в скрипте? kraber1980 JavaScript, Ajax 3 16.01.2016 19:22
как убрать ошибку? TLabel Общие вопросы Delphi 1 29.05.2011 17:20
Как убрать ошибку NetStream.Rtms.error rin10712 Помощь студентам 0 04.06.2010 11:09
Как убрать программно ошибку #Число! Alfiks Microsoft Office Access 9 05.06.2009 17:04