Je travaille sur un analyseur Web pour une page Web contenant des constantes mathématiques. J'ai besoin de remplacer quelques caractères afin de l'avoir sur un format spécifique, mais je ne sais pas pourquoi si je l'imprime, je semble fonctionner correctement; mais quand j'ouvre le fichier de sortie, le format obtenu par replace() ne semble pas avoir pris effet.Python: Replace() n'a aucun effet sur l'écriture dans un fichier
C'est le code
#!/usr/bin/env python3
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = "http://www.ebyte.it/library/educards/constants/ConstantsOfPhysicsAndMath.html"
soup = BeautifulSoup(urlopen(url).read(), "html5lib")
f = open("ebyteParse-output.txt", "w")
table = soup.find("table", attrs={"class": "grid9"})
rows = table.findAll("tr")
for tr in rows:
# If its a category of constants we write that as a comment
if tr.has_attr("bgcolor"):
f.write("\n\n# " + tr.find(text=True) + "\n")
continue
cols = tr.findAll("td")
if (len(cols) >= 2):
if (cols[0]["class"][0] == "box" or cols[0]["class"][0] == "boxi" and cols[1]["class"][0] == "boxa"):
constant = str(cols[0].find(text=True)).replace(" ", "-")
value = str(cols[1].find(text=True))
value = value.replace(" ", "").replace("...", "").replace("[", "").replace("]", "")
print(constant + "\t" + value)
f.write(constant + "\t" + value)
f.write("\n")
f.close()
C'est ce que l'impression montre:
C'est ce que je reçois sur le fichier de sortie
Merci vous, Salva
Une variable ne peut pas changer sa valeur entre les lignes 'print' et' f.write'. Je suppose que vous regardez le mauvais fichier. – Barmar