사용자가 대화 상자를 열고 파일을 선택하고 일부 정렬 구조 (ArrayList, List 등)를 읽도록 허용하는 Python 2.7을 사용하여 응용 프로그램을 작성하려고합니다. ..) 여기에 제안을 한 다음 데이터 (평균, 표준 편차 등)로부터 기본적인 통계적 조치를 찾고 원본 파일을 XML 형식의 통계 측정 요약으로 출력 할 수 있습니다. 이 작업을 수행하는 가장 좋은 방법은 궁금합니다. 사용자가 다른 웹 사이트에서 파일을 선택할 수 있도록 창을 열지 만 선택한 파일을 선택한 XML 파일을 읽는 함수에 전달하는 방법을 모르겠습니다. 내가 패스 기능에 이상이 있다고 생각XML에 관한 Java 및 Python 관련 질문
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()
: 여기
창에 대한 코드입니다.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);
}
}
이 한 가지 내가 좋아하지 않는다 :
나는 코드를 (그것의 측면을 실행하면 너무 모르는 그 BlueJ의에서 실행) 자바에서의 XMLReader의 버전이 Java 코드에 대해서는 파일의 경로를 포함해야한다는 것입니다. 사용자가 자바 버전에서도 파일을 선택할 수 있도록하고 싶습니다. 내가 자바로 시작한 이유는 조금 더 많은 경험이 있다는 것입니다. 응용 프로그램을 만들려면 최선의 방법은 무엇인지, 파이썬이나 자바 그리고 문제에 대한 정렬을 시작하는 데 어떤 도움을 주느냐에 따라 크게 달라질 수 있습니다.
나는 작은 것에서 파이썬을 선호한다. 자바보다 더 쉬운 것처럼 느껴진다는 점에서 변수 유형을 선언하는 것에 대해 많은 걱정을하지 않아도되고 구문을 이해하기가 더 쉽다. 그러나 대부분의 프로그램과 마찬가지로 이것은 내 용도로만 사용되는 것이 아닙니다 (나는 클럽을 위해 운영하는 웹 사이트에 추가하고 싶은 친구를 위해 돈을받지 못한다는 것을 지적합니다). 출력 파일에 관해서는 어떻게 든 원래의 XML 파일에 통계 정보를 추가 할 수 있다면 이상적인 솔루션이 될 것입니다. 이 부분의 결과물은 그가 작업하고있는 것의 입력이됩니다. – Rebel
이전 파일에 통계 데이터를 추가 하시겠습니까? 필자는 XML 형식의 새로운 파일을 만들고 분석 할 친구를 제공하는 것이 더 좋을 것이라고 생각합니다. 또한 XML을 사용하여 친구와 통신 하시겠습니까? 이 목적을 위해 약간, 잘, clunky, 특히 당신이 그다지 첫 번째 장소에 보낼 데이터가없는 경우. 당신은 처리하기 쉬운 일반 텍스트 파일을 작성할 수 있습니다. XML을 사용하려면 'http://www.postneo.com/projects/pyxml/'에서'xml.dom.minidom'을 사용하는 방법을 살펴보십시오. – katrielalex