2017-02-17 2 views
0

Je souhaite copier des tables de données affichées dans des sites Web et les coller directement en tant que texte sous forme de variables de chaîne à l'aide de IDLE. Cela ne fonctionne parfois pas à cause de quelque chose dans le matériel copié que IDLE n'acceptera pas comme étant sauvegardable. Le comportement résultant n'est pas un message d'erreur, mais IDLE ignore simplement la demande d'enregistrement. Il reste juste là jusqu'à ce que je ferme sans enregistrer. Ce comportement est bien pour le moment - Je ne voudrais bien sûr pas enregistrer un script python contenant des caractères gênants.Comment faire pour nettoyer les caractères gênants dans les données du presse-papiers afin que je puisse coller dans un script python dans IDLE?

Est-ce qu'il y a un moyen pour que je puisse sortir ces caractères agaçants de ce qui se trouve dans la planchette à pince de mon ordinateur pour que je puisse continuer avec mon script?

Si j'avais juste besoin de faire cela une fois, je pourrais aller voir le code HTML du site et éventuellement l'extraire, ou dans le cas de the table of satellites on this page peut-être que je peux aller dans l'application google et l'obtenir.

Mais pour les besoins de cette question, je voudrais un moyen de "réparer" les données dans mon tableau de presse pour que je puisse coller comme une chaîne dans un script en utilisant IDLE et l'exécuter.

J'ai essayé "Coller et Match Style" dans un fichier .txt d'abord pour le nettoyer, pas de chance. J'ai Sublime Text 2 mais pas très familliar, s'il y a une fonction relativement facile à utiliser là-dedans, ce serait OK.

Essayer de coller à l'intérieur des triples guillemets thing = """ """ à l'invite donne le message d'erreur suivant: Unsupported characters in input:

enter image description here

Note: en utilisant des versions Python et IDLE '2.7.11', la version Tk 8.5. 9 '(je sais, ils ont un an) dans OSX.

EDIT: Voici une partie des données de mon bloc-notes, comme suggéré dans les commentaires. La copie à partir d'ici (comme indiqué) entraîne des tentatives de sauvegarde infructueuses dans IDLE, donc au moins certains des symboles embêtants sont ici. Je colle entre une paire de guillemets, par ex. thing = """ """


1 2/6/2000 PICOSAT 1&2 (TETHERED) Aerospace Corporation mil Opal Opal T 5 N Minotaur-1 
2 2/10/2000 PICOSAT 3 (JAK) Santa Clara University uni Opal Opal E 2 N Minotaur-1 
3 2/10/2000 PICOSAT 6 (StenSat) Stensat Group. LLC civ Opal Opal C 2 N Minotaur-1 
4 2/12/2000 PICOSAT 4 (Thelma) Santa Clara University uni Opal Opal S 2 N Minotaur-1 
5 2/12/2000 PICOSAT 5 (Louise) Santa Clara University uni Opal Opal S 2 N Minotaur-1 
6 9/6/2001 PICOSAT 7&8 (TETHERED) Aerospace Corporation mil Opal Opal T 2 D Minotaur-1 
7 12/2/2002 MEPSI Aerospace Corporation mil 2U SSPL T 2 D Shuttle 
8 6/30/2003 DTUSAT 1 Technical University of Denmark uni 1U PPOD E 2 N Rokot-KM 
9 6/30/2003 CUTE-1 (CO-55) Tokyo Institute of Technology uni 1U PPOD E 3 N Rokot-KM 
10 6/30/2003 QUAKESAT 1 Stanford University uni 3U PPOD S 5 N Rokot-KM 
11 6/30/2003 AAU CUBESAT 1 Aalborg University uni 1U PPOD E 2 N Rokot-KM 
12 6/30/2003 CANX-1 UTIAS (University of Toronto) uni 1U PPOD E 2 N Rokot-KM 
13 6/30/2003 CUBESAT XI-IV (CO-57) University of Tokyo uni 1U PPOD E 4 S Rokot-KM 
14 10/27/2005 UWE-1 University of Würzburg uni 1U TPOD E 3 N Kosmos-3M 
15 10/27/2005 CUBESAT XI-V (CO-58) University of Tokyo uni 1U TPOD E 5 N Kosmos-3M 
16 10/27/2005 Ncube 2 Norweigan Universities uni 1U TPOD E 2 N Kosmos-3M 
17 2/21/2006 CUTE 1.7 Tokyo Institute of Technology uni 2U JPOD C 2 D M-5 (2) 
18 7/26/2006 AeroCube 1 Aerospace Corporation mil 1U PPOD T 1 D Dnepr-1 
19 7/26/2006 SEEDS Nihon University uni 1U PPOD E 1 D Dnepr-1 
20 7/26/2006 SACRED University of Arizona uni 1U PPOD E 1 D Dnepr-1 
+0

Vous pouvez essayer d'analyser la table avec Python –

+0

@ cricket_007 la table est affichée sur une page web dans mon navigateur, et je la sélectionne et la copie sur le tableau clip de mon ordinateur. Serais-je capable d'analyser à partir de mon presse-papiers? Je ne suis pas un développeur web, et je ne suis pas le créateur de la table. – uhoh

+0

Il semble s'agir d'une feuille de calcul Google. Il y a une API pour cela –

Répondre

1

Je vais essayer d'analyser la chaîne et trouver les caractères en dehors de la plage normale imprimable. Peut-être que le personnage étrange sera plus facile à identifier.

text = """ <here comes your pasted text> """ 

def normal(c): 
    return (32 <= ord(c) <= 127) or (c in '\n\r\t') 

strange = set(ord(c) for c in text if not normal(c)) 

print strange 

Je me demande ce que les codes de caractères peuvent se retrouver dans strange.

+0

Je ne peux pas lancer de python avec la chose. J'ai collé un exemple là-haut, et quand je le copie à nouveau, et que je le colle même à une invite Python interactive, j'obtiens l'erreur 'Caractères non pris en charge en entrée'. Je me demande si [cette réponse] (http://stackoverflow.com/a/28060419/3904031) s'applique? – uhoh

+0

Ah !, j'ai une autre installation de Python 2.7 (anaconda). En cours d'exécution dans iTerm je peux le coller à l'invite sans problème. OK, je vais essayer ça maintenant. – uhoh

+0

ensemble ([195, 188]), qui semblent être respectivement et ¼. Donc, je me demande si la réponse à cette question SO est * Ceci est en fait un comportement probablement attendu pour l'IDE IDLE «débutant», peut-être par mesure de sécurité, mais d'autres environnements peuvent être plus acceptant *? – uhoh