Der Curl wird zu spät fertiggestellt, um der Anweisung zu folgenPython

Python-Programme
Anonymous
 Der Curl wird zu spät fertiggestellt, um der Anweisung zu folgen

Post by Anonymous »

Ich habe mein Fedora-Betriebssystem zum ersten Mal seit vielen Jahren aktualisiert und auch die Python-Version wurde aktualisiert. Dies erforderte einige geringfügige Änderungen an meinem vorhandenen Code (nackter Druck nicht mehr zulässig, veraltet).
Ein Codeteil, auf den ich mich jahrelang verlassen hatte, funktionierte jedoch nicht mehr und ich hatte Mühe, ihn zu reparieren. Sein Zweck bestand darin, mithilfe von Curl und Grep eine Textseite aus dem Internet herunterzuladen und verschiedene Schlüsselwörter herauszufiltern. (Im Beispiel unten habe ich alles bis auf den problematischen Teil herausgeschnitten und die Website in eine feste akademische Website geändert).

Code: Select all

#!/usr/bin/python
import os
import time
os.popen('curl https://www.york.ac.uk/teaching/cws/wws/webpage1.html > temptext.txt')
os.popen('grep understanding temptext.txt | head -n 1 > output.txt')
Ich habe festgestellt, dass die Datei „temptext.txt“ den erwarteten Text enthielt, die Datei „output.txt“ jedoch leer war. Nach einigem Testen wurde mir klar, dass der grep ausgeführt wurde, BEVOR der Download abgeschlossen war. Wenn ich zwischen den Schritten eine große Pause einlegte, funktionierte es einwandfrei (allerdings offensichtlich langsamer).
Am Ende habe ich den Code einfach komplett umgestaltet, um diese Aufgaben in separaten Läufen zu erledigen.
Wie gesagt, dieser Code hat in Python 2 einwandfrei funktioniert.
Mein Betriebssystem ist Fedora 42, die Python-Version ist 3.13.7.
Jeder Rat ist willkommen!
Bearbeiten: Gemäß dem Rat von wjandrea füge ich eine explizite Frage hinzu. F. Wie ändere ich diesen Code, um dieses Problem zu vermeiden? Obwohl ich es umgangen habe, indem ich zwei Skripte ausgeführt habe, möchte ich das nicht tun.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post