J'essaie d'écrire une application en utilisant Python 2.7 qui permettra à l'utilisateur d'ouvrir une boîte de dialogue, de choisir un fichier, de le lire dans une structure quelconque (ArrayList, List, etc. ..) ouvert aux suggestions ici et ensuite de trouver des mesures statistiques de base à partir des données (des choses comme la moyenne, l'écart type etc ...) et de sortir le fichier original avec un résumé des mesures statistiques au format XML. Je me demandais juste comment est le meilleur moyen d'accomplir cela. J'ai le code pour ouvrir une fenêtre pour permettre à un utilisateur de choisir un fichier (d'un autre site Web) mais je ne sais pas comment l'utiliser pour passer le fichier sélectionné dans la fonction qui lira le fichier xml sélectionné.XML Question relative à Java et Python
Voici le code de la fenêtre:
from Tkinter import *
from tkMessageBox import *
from tkColorChooser import askcolor
from tkFileDialog import askopenfilename
def callback():
askopenfilename()
Button(text='Please Select File', command=callback).pack(fill=X)
mainloop()
pass
def quit(event):
if tkMessageBox.askokcancel('Quit','Do you really want to quit?'):
root.destroy()
Je pense qu'il est plus à la fonction de passe.
J'ai une version du XMLReader en Java (qui est géré en BlueJ donc je ne sais pas si elle va manquer côté de celui-ci) Code:
import java.util.*;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XMLReader
{
public static void main(String argv[]) {
ArrayList XTimeStamp = new ArrayList();
ArrayList XY = new ArrayList();
ArrayList Price = new ArrayList();
try {
File file = new File("<PATH>\shares.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
System.out.println("Root element " + doc.getDocumentElement().getNodeName());
NodeList nodeLst = doc.getElementsByTagName("shareprice");
System.out.println("Share Price");
for (int s = 0; s < nodeLst.getLength(); s++) {
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element) fstNode;
NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("timeStamp");
Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
NodeList fstNm = fstNmElmnt.getChildNodes();
String timeStamp = fstNm.item(0).getNodeValue();
XTimeStamp.add(timeStamp);
System.out.println("timeStamp : " + ((Node) fstNm.item(0)).getNodeValue());
NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("Price");
Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
NodeList lstNm = lstNmElmnt.getChildNodes();
String YValue = lstNm.item(0).getNodeValue();
Price.add(YValue);
System.out.println("Price : " + ((Node) lstNm.item(0)).getNodeValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(XTimeStamp);
System.out.println(Price);
XY.add (XTimeStamp);
XY.add (Price);
System.out.println(XY);
}
}
La seule chose que je n'aime pas à propos du code Java est que je dois inclure le chemin du fichier. Je voudrais permettre à l'utilisateur de choisir le fichier dans la version Java. La raison pour laquelle j'ai commencé avec Java est que j'ai un peu plus d'expérience (mais pas beaucoup). Pour créer l'application, quelle est la meilleure façon d'avancer, Python ou Java et en fonction de l'aide que vous obtiendrez pour commencer à trier les problèmes serait grandement appréciée.
Je préférerais Python du petit je sais que cela semble plus facile que Java dans le sens où vous n'avez pas trop de soucis à propos de la déclaration des types de variables et la syntaxe est plus facile à suivre. Mais comme la plupart des programmes, ce n'est pas exactement pour mon usage personnel (je ferai remarquer que je ne reçois pas d'argent pour cela, c'est pour un ami qui veut l'ajouter à un site Web qu'il utilise pour un club). En ce qui concerne le fichier de sortie, si je pouvais en quelque sorte ajouter les informations statistiques dans le fichier xml d'origine serait la solution idéale. Comme la sortie de cette partie est de devenir l'entrée dans ce qu'il travaille. – Rebel
Etes-vous sûr de vouloir ajouter les données de statistiques dans l'ancien fichier? Je pense qu'il serait plus agréable de faire un nouveau fichier, éventuellement en format XML, et de donner à votre ami à analyser. Etes-vous sûr de vouloir utiliser XML pour communiquer avec votre ami? C'est un peu, bon, maladroit à cet effet, surtout si vous n'avez pas autant de données à envoyer en premier lieu. Vous pourriez simplement écrire un fichier texte, qui pourrait être plus facile à gérer. Si vous êtes sûr de vouloir utiliser XML, jetez un oeil à http://www.postneo.com/projects/pyxml/ pour un exemple d'utilisation de 'xml.dom.minidom'. – katrielalex