2009-12-16 6 views
-1

J'ai rencontré un problème en joignant deux chaînes en Python. J'ai un code qui ressemble à ceci:Python joignant des chaînes

for line in sites: 
    site = line   

    for line in files: 
     url = site+line 

Cela devrait être facile, mais je thougth les cordes finit par "regarder wierd":

http://example.com/ (ce qui est le site) history.txt (Puis la ligne arrive sur une autre "ligne" dans les chaînes qui la vissent quand j'essaye d'ouvrir l'url car elle est invalide)

Quelqu'un connaît une solution?

+1

Pouvez-vous développer ce que vous entendez par « la recherche bizarre »? La seule chose étrange à propos de votre code est l'utilisation du nom de l'itérateur "line" dans la boucle imbriquée - mais cela ne devrait pas causer de problème avec votre code. – Trent

+1

Je pense que le lien de votre site est cassé. S'il vous plaît aussi poster ce que les chaînes ressemblent. Mettre les données d'entrée dans la question elle-même serait également utile. –

+0

Que voulez-vous dire "regarder bizarre"? Quel est le contenu des sites et fichiers de variables? Qu'entendez-vous par «Alors la ligne vient sur une autre« ligne »dans les cordes? – ddaa

Répondre

2

La chose la plus simple est d'éviter d'utiliser la même variable dans les déclarations pour:

for site in sites: 
    for line in files: 
    url = site + line 

Est-ce que les choses éclaircir? C'est une bonne pratique dans tous les cas.

+0

si "sites" est un fichier la fin de la ligne \ n \ r n'est pas supprimée par la construction for –

+0

Merci, une combinaison de cela et de la réponse de gnibbler a résolu le problème. –

0

Peut-être que le problème est d'utiliser le nom d'identifiant 'line' deux fois?

1

Peut-être que vous avez des espaces supplémentaires, par exemple un saut de ligne à la fin du site

for site in sites: 
    for line in files: 
     url = site.strip() + line.strip() 
Questions connexes