xml 파일을 파이썬에서 csv 출력으로 변환하는 방법은 무엇입니까?

Buckzer

제어 할 수없는 데이터베이스에서 가져온 기본 XML 파일이 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<data>
<Job1Start><Time>20200202055415725</Time></Job1Start>
<Job1End><Time>20200202055423951</Time></Job1End>
<Job2Start><Time>20200202055810390</Time></Job2Start>
<Job3Start><Time>20200202055814687</Time></Job3Start>
<Job2End><Time>20200202055819000</Time></Job2End>
<Job3End><Time>20200202055816708</Time></Job3End>
</data>

CSV 파일에서 다음 출력을 얻고 싶습니다.

Task    Start               Finish
Job1    20200202055415725   20200202055423951
Job2    20200202055810390   20200202055819000
Job3    20200202055814687   20200202055816708

몇 가지 방법을 시도했지만 아래는 올바른 출력에 가장 가까운 것처럼 보이지만 제대로 작동하지 않습니다.

import xml.etree.ElementTree as ET
import csv

tree = ET.parse('Jobs.xml')
root = tree.getroot()

with open('Output.csv', 'w') as csv_file:
        writer = csv.writer(csv_file, delimiter=',')
        for TaskName in root.findall('Job1Start'):
            starttime = TaskName.find('Time').text
            task = "Job1"
            writer.writerows(zip(task, starttime))
            print("Job1", starttime)

여기에서 얻은 출력은 다음과 같습니다. 형식이 잘못되어 Job1에서 시작 시간 만 검색 할 수있었습니다.

CSV 출력

누구든지 비슷한 문제에 대한 경험이 있습니까?

마크 톨로 넨

writerows대신 writerow단일 문자 문제 및 csv.writer. writerows는 목록 목록 (또는 더 정확하게는 반복 가능 항목)을 예상하고 문자열은 반복 가능하므로 문자열 목록은 요구 사항을 충족하지만 내부 "목록"항목은 단일 문자입니다.

csv.writer또한 newline=''설명서에 따라 필요 하며 Windows에서이 매개 변수가 없으면 CSV가 Excel에서 열릴 때 행 사이에 추가 빈 줄로 표시됩니다.

해결책은 다음과 같습니다.

import xml.etree.ElementTree as ET
import csv

tree = ET.parse('Jobs.xml')
root = tree.getroot()

# Use newline='' per csv docs.  This fixes the blanks lines in your output
with open('Output.csv', 'w', newline='') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow('Task Start Finish'.split())
        for job in range(1,4):
            start = root.find(f'Job{job}Start/Time').text
            end = root.find(f'Job{job}End/Time').text
            # Use writerow not writerows...latter expects list of lists.
            writer.writerow([f'Job{job}',start,end])

산출:

Task,Start,Finish
Job1,20200202055415725,20200202055423951
Job2,20200202055810390,20200202055819000
Job3,20200202055814687,20200202055816708

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

XML 파일을 CSV 파일로 변환하는 효과적인 방법은 무엇입니까?

분류에서Dev

Perl을 사용하여 XML 파일을 CSV로 변환하는 방법은 무엇입니까?

분류에서Dev

Perl을 사용하여 XML 파일을 CSV로 변환하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 json 파일로 변환하기 위해 csv 파일에 레이블을 지정하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

간단한 구조의 xml 파일을 csv로 변환하는 방법은 무엇입니까?

분류에서Dev

서버에서 파이썬으로 csv 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

.mat 파일을 .xml 파일로 변환하는 방법은 무엇입니까?

분류에서Dev

xml 파일을 읽고 파이썬 코드로 변환하고 실행하는 방법은 무엇입니까?

분류에서Dev

xml 파일을 읽고 파이썬 코드로 변환하고 실행하는 방법은 무엇입니까?

분류에서Dev

이 XML 파일을 "tibble"로 변환하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 하나의 json 파일을 출력으로 만드는 방법은 무엇입니까?

분류에서Dev

파이썬에서 파일을 gml에서 edgelist로 변환하는 방법은 무엇입니까?

분류에서Dev

csv 파일에서 파이썬으로 숫자를 읽는 방법은 무엇입니까?

분류에서Dev

JSON 목록을 CSV 파일에서 두 개의 다른 열로 변환하는 방법은 무엇입니까?

분류에서Dev

긴 숫자 문자열을 CSV 파일에서 배열로 변환하는 방법은 무엇입니까?

분류에서Dev

csv 파일에서 문자열을 int로 변환하는 방법은 무엇입니까?

분류에서Dev

PowerShell 2.0을 사용하여이 XML을 CSV로 변환하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 파일 유형으로 csv 파일 이름을 변경하는 방법이 있습니까?

분류에서Dev

파이썬에서 CSV를 Json으로 변환하는 동안 필드를 부동 소수점으로 지정하는 방법은 무엇입니까?

분류에서Dev

CSV 파일의 NaN 값을 0으로 변환하는 방법은 무엇입니까?

분류에서Dev

병합 된 열이있는 xls 파일을 csv로 변환하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 \ n으로 출력을 올바르게 분할하는 방법은 무엇입니까?

분류에서Dev

Sybase의 저장 프로 시저에서 XML 출력 파일을 생성하는 방법은 무엇입니까?

분류에서Dev

Sybase의 저장 프로 시저에서 XML 출력 파일을 생성하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 낮을 일로 변환하는 방법은 무엇입니까?

분류에서Dev

일부 csv 파일 열을 파이썬으로 다른 csv 파일에 복사하는 방법은 무엇입니까?

분류에서Dev

JMeter CSV 출력 파일에 변수 이름을 추가하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 데이터 프레임 또는 CSV 파일의 모든 중복을 효율적으로 제거하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 XML을 파싱하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    XML 파일을 CSV 파일로 변환하는 효과적인 방법은 무엇입니까?

  2. 2

    Perl을 사용하여 XML 파일을 CSV로 변환하는 방법은 무엇입니까?

  3. 3

    Perl을 사용하여 XML 파일을 CSV로 변환하는 방법은 무엇입니까?

  4. 4

    파이썬에서 json 파일로 변환하기 위해 csv 파일에 레이블을 지정하는 가장 좋은 방법은 무엇입니까?

  5. 5

    간단한 구조의 xml 파일을 csv로 변환하는 방법은 무엇입니까?

  6. 6

    서버에서 파이썬으로 csv 파일을 다운로드하는 방법은 무엇입니까?

  7. 7

    .mat 파일을 .xml 파일로 변환하는 방법은 무엇입니까?

  8. 8

    xml 파일을 읽고 파이썬 코드로 변환하고 실행하는 방법은 무엇입니까?

  9. 9

    xml 파일을 읽고 파이썬 코드로 변환하고 실행하는 방법은 무엇입니까?

  10. 10

    이 XML 파일을 "tibble"로 변환하는 방법은 무엇입니까?

  11. 11

    파이썬에서 하나의 json 파일을 출력으로 만드는 방법은 무엇입니까?

  12. 12

    파이썬에서 파일을 gml에서 edgelist로 변환하는 방법은 무엇입니까?

  13. 13

    csv 파일에서 파이썬으로 숫자를 읽는 방법은 무엇입니까?

  14. 14

    JSON 목록을 CSV 파일에서 두 개의 다른 열로 변환하는 방법은 무엇입니까?

  15. 15

    긴 숫자 문자열을 CSV 파일에서 배열로 변환하는 방법은 무엇입니까?

  16. 16

    csv 파일에서 문자열을 int로 변환하는 방법은 무엇입니까?

  17. 17

    PowerShell 2.0을 사용하여이 XML을 CSV로 변환하는 방법은 무엇입니까?

  18. 18

    파이썬에서 파일 유형으로 csv 파일 이름을 변경하는 방법이 있습니까?

  19. 19

    파이썬에서 CSV를 Json으로 변환하는 동안 필드를 부동 소수점으로 지정하는 방법은 무엇입니까?

  20. 20

    CSV 파일의 NaN 값을 0으로 변환하는 방법은 무엇입니까?

  21. 21

    병합 된 열이있는 xls 파일을 csv로 변환하는 방법은 무엇입니까?

  22. 22

    파이썬에서 \ n으로 출력을 올바르게 분할하는 방법은 무엇입니까?

  23. 23

    Sybase의 저장 프로 시저에서 XML 출력 파일을 생성하는 방법은 무엇입니까?

  24. 24

    Sybase의 저장 프로 시저에서 XML 출력 파일을 생성하는 방법은 무엇입니까?

  25. 25

    파이썬에서 낮을 일로 변환하는 방법은 무엇입니까?

  26. 26

    일부 csv 파일 열을 파이썬으로 다른 csv 파일에 복사하는 방법은 무엇입니까?

  27. 27

    JMeter CSV 출력 파일에 변수 이름을 추가하는 방법은 무엇입니까?

  28. 28

    파이썬에서 데이터 프레임 또는 CSV 파일의 모든 중복을 효율적으로 제거하는 방법은 무엇입니까?

  29. 29

    파이썬에서 XML을 파싱하는 방법은 무엇입니까?

뜨겁다태그

보관