Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Python

Problem z zakończeniem readline()

python

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 TibacK

    Chce własny program w telewizji - Eutanazja Express

  • Support Team

Reputacja: 859
Czempion

  • Postów:3 398
Offline

Napisano 14.03.2019 18:13

Witam,

napisałem sobie taki skrypcik podręczny do pobierania rzeczy z YT (mniejsza). No i pobiera elegancko. Problemem jest to, że wali błędami typu:

ERROR: [Errno 22] Invalid argument
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1250'>
OSError: [Errno 22] Invalid argument

Jak na moje funkcja readline() wisi i po tym jak program youtube-dl pobierze rzeczy z jednego kanału i subprocess zakończy się to ten readline() rzuci błędem. Ktoś ma jakiś pomysł?

 

 

Spoiler

 

 

 

 


Użytkownik TibacK edytował ten post 14.03.2019 18:15

  • +
  • -
  • 0

Na PW pomagam tylko odpłatnie. Przyjmuje zlecenia.


#2 DarkGL

    Nie oddam ciasteczka !

  • Właściciel

Reputacja: 6 358
Godlike

  • Postów:11 492
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 14.03.2019 20:52

https://stackoverflo...age-in-python-3


  • +
  • -
  • 0

#3 TibacK

    Chce własny program w telewizji - Eutanazja Express

  • Autor tematu
  • Support Team

Reputacja: 859
Czempion

  • Postów:3 398
Offline

Napisano 14.03.2019 21:16

Czyli co, to po prostu jakiś bug?

Oblatałem rano chyba z 100 tematów na staku. Próbowałem w blok 'try' dodawać itp, ale nie jest łapany wyjątek. (albo jeszcze nie ogarniam na tyle pythona)

def executeCommand(cmd):
	
	process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
	while True:
		if process.poll() is not None:
			break;
		
		try:
			nextline = process.stdout.readline()
		except IOError:
			sys.stdout.write("Exc on close: " + str(sys.exc_info()[0]) + "\n")
		
		if nextline != '':
			nextline = nextline.decode("utf-8", errors="ignore")

		if "upload date is not in range" in nextline:
			break
		try:
			sys.stdout.write(nextline)
			sys.stdout.flush()
		except IOError:
			sys.stdout.write("Exc on close: " + str(sys.exc_info()[0]) + "\n")
	try:
		process.stdout.close()
	except IOError:
		sys.stdout.write("Exc on close: " + str(sys.exc_info()[0]) + "\n")

	process.terminate()

output:

[email protected] D:\
$ update.py
[youtube:channel] UC-LTY8udwDeOUzMY8PIhD6w: Downloading channel page
[youtube:playlist] UU-LTY8udwDeOUzMY8PIhD6w: Downloading webpage
[download] Downloading playlist: Uploads from Poeta Kodu
[youtube:playlist] playlist Uploads from Poeta Kodu: Downloading 12 videos
[download] Downloading video 1 of 12
[youtube] os5xHYIeid4: Downloading webpage
[youtube] os5xHYIeid4: Downloading video info webpage
[youtube] os5xHYIeid4: Downloading MPD manifest
ERROR: [Errno 22] Invalid argument
ERROR: [Errno 22] Invalid argument
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1250'>
OSError: [Errno 22] Invalid argument

Albo czy znasz może jakąś inną metodę przechwytywania stdout z running procesu?


  • +
  • -
  • 0

Na PW pomagam tylko odpłatnie. Przyjmuje zlecenia.


#4 l3szcz

    Just Leszcz :>

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:344
  • GG:
  • Imię:Tomek
  • Lokalizacja:Pomorze
Offline

Napisano 30.03.2019 00:24

sys.stdout.write("Exc on close: " + str(sys.exc_info()[0]) + "\n")

Co zwraca?

Możesz sprawdzić przez: 

print(str(sys.exc_info())

Użytkownik l3szcz edytował ten post 30.03.2019 00:25

  • +
  • -
  • 0

@DarkGL - daj mi ciacho!  :crazy:






Również z jednym lub większą ilością słów kluczowych: python

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych


Coinsy CSGOAtse Za SMS, PSC , Przelew - CoinSell.pl