Я пытаюсь написать приложение на Python 2.7, которое позволит пользователю открыть диалоговое окно, выбрать файл, прочитать его в какой-либо структуре (ArrayList, List и т. Д.), Открытой для предложений здесь а затем найти основные статистические показатели из данных (например, среднее значение, стандартное отклонение и т. д.) и вывести исходный файл со сводкой статистических измерений в формате XML. Просто интересно, как лучше всего это сделать. У меня есть код для открытия окна, чтобы позволить пользователю выбрать файл (с другого веб-сайта), но я не уверен, как использовать его для передачи выбранного файла в функцию, которая будет читать выбранный файл XML.
Вот код для окна:
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()
Я думаю, что есть еще функция прохода.
У меня есть версия XMLReader на Java (которая запускается в BlueJ, поэтому не знаю, выйдет ли она за ее пределы) код:
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);
}
}
Единственное, что мне не нравится в коде Java, - это то, что мне нужно указать путь к файлу. Я хотел бы позволить пользователю выбрать файл в версии Java, а также. Причина, по которой я начал с Java, в том, что у меня немного больше опыта (но не очень). Чтобы создать приложение, которое является лучшим способом продвижения вперед, Python или Java, и в зависимости от того, какая из них поможет начать работу по сортировке проблем, будет принята с благодарностью.