4 votes

Pourquoi Eclipse et Visual Studio lisent-ils les chaînes Python d'une manière différente ?

J'utilise toujours Eclipse sur mon Mac pour le codage Python. Aujourd'hui, j'ai codé Python dans Visual Studio sur Windows. Lorsque j'ai réexécuté le code sur Eclipse de mon Mac, quelque chose d'étrange s'est produit et je ne sais pas pourquoi.

J'utilise Python 2.7 sur Eclipse et Visual Studio. La saisie des données et le code sont également identiques. Les données sont au format .txt

Il s'agit d'un exemple de ligne de données :

<p>abcbdABCDE</p>pewpewpew

Dans Visual Studio, il pourrait reconnaître qu'il y a un \n après pewpewpew mais pas Eclipse.

Ainsi, lorsque j'utilisais endswith() Si je tape endswith("</p>pewpewpew\n") Visual Studio a pu aider à trouver la ligne entière de données, mais Eclipse ne le peut pas, même lorsque j'ai essayé de trouver la ligne entière de données. endswith("</p>pewpewpew") mais il ne peut toujours pas reconnaître la ligne entière.

Je me demande si c'est à cause de certains paramètres d'Eclipse ou de Mac qui changent le format .txt alors que je viens de télécharger les données que j'utilisais sous Windows ?

Nota: Dans le vrai problème, je dois utiliser endswith() ne peut pas utiliser in o not in

Exemple de code simplifié (il fonctionne sur Visual Studio et non sur Eclipse)

pth = "[file path]"
f = open(pth)

for l in f:
    if l.endswith("</p>pewpewpew\n"):
        print l

1voto

Rob Davis Points 762

À mon avis, le problème réside dans la manière dont les systèmes Windows et Unix enregistrent les caractères de nouvelle ligne. Dans les environnements de type Unix, un seul caractère est utilisé " \n " - le caractère de saut de ligne. Dans les environnements Windows, deux caractères sont utilisés pour indiquer une nouvelle ligne - " \r\n "le retour chariot et le saut de ligne.

Si le fichier que vous analysez a été écrit sous Windows, la ligne se termine par " \r\n ". C'est ma meilleure hypothèse. VisualStudio est probablement configuré pour traiter " \n " et " \r\n "de la même manière. Alors qu'Eclipse vous demande d'indiquer explicitement que la ligne se termine par " \r\n ".

La meilleure façon de déterminer comment le fichier est réellement écrit est de l'ouvrir dans un éditeur de texte qui fournira une interprétation visuelle des caractères ASCII non affichables. J'utilise généralement Notepad++ et j'active l'option "Afficher tous les caractères".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X