Erreur lors de la lecture avec python

Au lieu de mémo

Je vais jouer avec python à partir de maintenant comme mémo Je l'ajouterai à chaque fois

SyntaxError: Non-UTF-8 code starting Message d'erreur </ b> SyntaxError: code non UTF-8 commençant par 'Emplacement de l'erreur' dans le fichier sample.py à la ligne 1, mais aucun encodage déclaré; voir http://python.org/dev/peps/pep-0263/ pour plus de détails Cause </ b> La cause était que le code python que j'écrivais était écrit en S-JIS (SHIFT-JIS) (en bref, *** code de caractère ***) Procédure: [Nouveau] -> [Document texte] -> Changer l'extension du fichier créé de txt à py Ochi </ b> Changement du code source python de S-JIS à UTF-8 Pour terapad: Copiez le code entier une fois → [Fichier] → [Recharger avec le code de caractère] → Sélectionnez UTF-8 → (Après le rechargement) Sélectionnez le texte intégral avec ctrl + A → Coller avec ctrl + V → ctrl + Écraser avec S Même html était brouillé, et S-JIS est toujours nuisible ... Nous devons l'unifier sous le dieu UTF-8 ... (enseignement radical UTF-8) Faction) </ s> </ font> FileNotFoundError Message d'erreur </ b> FileNotFoundError: [Errno 2] No such file or directory: './img.png' Cause </ b> La cause est que le dossier (répertoire) spécifié par le fichier "img.png " n'existe pas. → J'ai mis par erreur img.jpg Ochi </ b> Soit le fichier [img.jpg] doit être [img.png], soit le fichier img.png dans le code doit être img.jpg

Partie 3 (liée au sélénium)

Message d'erreur </ b> selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81 Cause </ b> La version de chromedriver.exe que j'utilise est différente de la version de Google Chrome qui se trouve sur mon PC → Pilote Chrome 81.0.4044.20, la version chrome était 80.0.3987.132 → À propos, comment vérifier la version de chrome peut être trouvée sur l'écran de transition de «En haut à droite:» → «Aide» → «À propos de Google Chrome» Ochi </ b> La version a été chromedriver.exe correspondant à 80.0.3987.132 IndentationError Message d'erreur </ b> File "python.py", line 52 ~ IndentationError: expected an indented block Cause </ b> Il n'y a pas d'intention (abaissement) dans la partie concernée (52e ligne cette fois) Ochi </ b> Utilisez la touche Tab pour insérer un intent → À propos, l'espace demi-largeur est acceptable (la pleine largeur n'est pas autorisée) UnicodeDecodeError Message d'erreur </ b> UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 49: illegal multibyte sequence Partie correspondante (ligne 49): with open("img.txt") as f: Cause </ b> Apparemment, c'est un problème de code de caractère Ce fichier img.txt est écrit en UTF-8, mais s'il n'est pas spécifié dans l'environnement Windows, il essaiera de lire en S-JIS. Référence: https://qiita.com/Yuu94/items/9ffdfcb2c26d6b33792e S-JIS est dangereux ... (radicaux UTF-8) </ s> </ font> Ochi </ b> J'ai pu réécrire l'intérieur de open comme suit Précédent) avec open ("img.txt") comme f: Après) avec open ("img.txt", encoding = "utf8") comme f: SyntaxError: EOL while scanning string literal Message d'erreur </ b> print("/、") SyntaxError: EOL while scanning string literal Cause </ b> La cause est que "et" ne sont pas fermés. Dans la phrase d'exemple, il semble être fermé, mais en fait, "" est un caractère d'échappement </ b> et "" \ "" est un processus qui "met" comme caractère ". Référence: https://blog.pyq.jp/entry/Python_kaiketsu_181122 Ochi </ b> Écrivez en continu comme "\"

SyntaxError: Failed to execute 'evaluate' on 'Document' Message d'erreur </ b> * Puisque @ est un lien, il est pleine largeur SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//input[@name='name]' is not a valid XPath expression. Partie applicable: driver.find_element_by_xpath("//input[@name='name]").send_keys("") Cause </ b> Erreur indiquant que "ou" n'est pas fermé " Ochi </ b> Si vous regardez attentivement la phrase correspondante, vous verrez "" // input [@ name = 'name ' </ b> </ font>] "" et "'" qui devrait être dans la partie colorée. Je ne l'avais pas, alors je l'ai attaché déplacé

SyntaxError: (unicode error) Message d'erreur </ b>

selenium_test.py


  File "selenium_test.py", line 12
    prefs = {"download.default_directory" : "C:\Users\\{username}\\Downloads\\test"}
                                            ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Cause </ b> J'ai fait référence au code source de l'URL de référence suivante, mais une erreur Vous devez mettre r qui représente les données brutes Référence: https://qiita.com/hikoalpha/items/fa8330391823aea2fbca Ochi </ b> Correct </ b>) prefs = {"download.default_directory": r </ b> </ font> "C: \ Users \ {username} \ Téléchargements \ test "} Wrong) prefs = {"download.default_directory": "C: \ Users \ {username} \ Downloads \ test"} Wrong) prefs = {"download.default_directory": ex (r </ font> "C: \ Users \ {username} \ Downloads \ test" ) </ font>} Je suis très reconnaissant pour la publication, mais la description qui semble induire des erreurs si le code qui génère une erreur est laissé tel quel est un peu ... </ font> SyntaxError: invalid character in identifier Message d'erreur </ b>

test.py


   while x < xx:
          ^
SyntaxError: invalid character in identifier

Cause </ b> Il y a un espace pleine largeur </ b> entre while et x Ochi </ b> Réécrit dans un espace demi-largeur

élément non interactif (lié au sélénium)

Message d'erreur </ b>

selenium_test.py


  File "selenium_test.py", line 33, in <module>
    driver.find_element_by_xpath("//button[@class='class']").click()
~ Omis ~
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

Cause </ b> Il y avait en fait plusieurs boutons avec le même élément (boutons dont l'élément de classe est "class") Il semble que cette erreur sera générée même si elle est hors de l'écran, mais dans ce cas, vous devez faire défiler Référence: https://qiita.com/DNA1980/items/528ff6269986b262acdc Ochi </ b> Utilisez find_elements pour cracher tous les boutons qui correspondent aux éléments, trouver le bouton souhaité et .click () Bonus </ b> Code de confirmation d'attribut que j'utilise souvent

selenium_test.py


for tag in driver.find_elements_by_xpath("//button[@class='class']"):#Modifiez dans xpath si nécessaire
#	att = tag.get_attribute("name") #Cette partie est utilisée lorsque vous souhaitez extraire une partie spécifique de la partie capturée → Dans ce cas, la classe est"class"Tirez sur l'élément de nom du bouton
	print("tester:" + tag.text)#Si vous souhaitez afficher l'attribut ci-dessus, cliquez sur "imprimer("tester:" + att)"Devient

element is not attached to the page document Message d'erreur </ b>

selenium_test.py


  File "selenium_test.py", line 33, in <module>
    print("tester:"+ele_find.text)
~ Omis ~
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

Cause </ b> J'ai mis le processus de transition dans l'instruction for, mais j'ai oublié de décrire la pause Pour cette raison, je pense qu'il était en colère contre moi quand il a essayé de prendre un élément qui n'existait pas alors que le traitement se poursuivait. Ochi </ b> Rupture vissée immédiatement après le traitement de transition

FileNotFoundError: [WinError 3] Le chemin spécifié est introuvable

Message d'erreur </ b>

test.py


os.mkdir("chemin//test//test2")

Cause </ b> Je veux faire de test2 un test, mais le répertoire de test essentiel n'existait pas Ochi </ b>

test.py


os.makedirs("chemin//test//test2") #Vous pouvez tout faire avec makedirs

Les caractères définis par pyautogui deviennent majuscules

Situation </ b>

test.py


pyautogui.typewrite("puyopuyo")#Résultat → PUYO PUYO

Cause </ b> J'étais en mode de saisie majuscule avec Shift + CapsLock Probablement parce qu'il s'agit d'une commande "appuyer sur une touche" au lieu de "entrer une touche" Vous le rencontrerez rarement, Ochi </ b> J'ai pu y aller après avoir annulé l'entrée en majuscules

SyntaxError: invalid syntax Cause </ b> S ... Il apparaît souvent avec des erreurs de syntaxe comme des excréments ・ J'ai oublié d'ajouter ":" à la fin de l'instruction if, for statement et while statement. Faux) si a == 0 Correct) si a == 0 : </ b>

・ Il y a des personnages inutiles Il est généralement indiqué, je vais donc m'en débarrasser et le réécrire sous la forme correcte.

selenium_test.py


  File "selenium_test.py", line 67
    ActionChains(driver).key_down(Keys.CONTROL).send_keys(,"s").perform()
                                                          ^
SyntaxError: invalid syntax

Recommended Posts