sourcecode

탭 구분 파일을 CSV 형식으로 변환하려면 어떻게 해야 합니까?

codebag 2023. 4. 13. 20:47
반응형

탭 구분 파일을 CSV 형식으로 변환하려면 어떻게 해야 합니까?

다음 형식의 텍스트파일이 있습니다.

{

attribute1 attribute2 attribute3.... attributeN

value"A" value"B" value"C".... value"Z"

/* next line of values*/

}

각 단어는 탭으로 구분됩니다.

CSV 형식으로 변환하려면 어떻게 해야 하나요?엑셀을 사용해 봤는데 호환성에 문제가 있어요.

탭을 열 구분 기호로 사용하여 Excel(텍스트 파일에서 데이터 > 로드)을 사용하여 데이터를 Import합니다.그런 다음 파일을 csv로 저장합니다.

호환성 문제가 있을 수 없습니다.기본적인 작업이기 때문에 예전에는 자주 했습니다.

스크립트 언어를 사용할 수 있는 경우 Python에 다음과 같은 시도를 할 수 있습니다.

import csv

# read tab-delimited file
with open('yourfile.tsv','r') as fin:
    cr = csv.reader(fin, delimiter='\t')
    filecontents = [line for line in cr]

# write comma-delimited file (comma is the default delimiter)
with open('yourfile.csv','w') as fou:
    cw = csv.writer(fou, quotechar='', quoting=csv.QUOTE_NONE)
    cw.writerows(filecontents)

인터프리터 세션 예시:

>>> import csv
>>> with open('yourfile.tsv','r') as fin:
...     cr = csv.reader(fin, delimiter='\t')
...     filecontents = [line for line in cr]
...
>>> with open('yourfile.csv','w') as fou:
...     cw = csv.writer(fou, quotechar='', quoting=csv.QUOTE_NONE)
...     cw.writerows(filecontents)
...
>>> with open('yourfile.csv','r') as see_how_it_turned_out:
...     for line in see_how_it_turned_out: 
...         line
... 
'attribute1,attribute2,attribute3,attributeN\r\n'
'value"A",value"B",value"C",value"Z"\r\n'

주의:

대체 줄 바꿈의 예:

with open('yourfile.csv','w') as fou:
    cw = csv.writer(fou,quotechar='',quoting=csv.QUOTE_NONE,lineterminator='\n')
    ...

다음은 이 변환을 수행하는 Excel-VBA 코드입니다.Excel의 Visual Basic Editor에 붙여넣기(Alt-F11(물론 파일명을 조정한 후)를 실행합니다.

Sub TabToCsv()

    Const ForReading = 1, ForWriting = 2
    Dim fso, MyTabFile, MyCsvFile, FileName
    Dim strFileContent as String
    Set fso = CreateObject("Scripting.FileSystemObject")

    ' Open the file for input.
    Set MyTabFile = fso.OpenTextFile("c:\testfile.dat", ForReading)

    ' Read the entire file and close.
    strFileContent = MyTabFile.ReadAll
    MyTabFile.Close

    ' Replace tabs with commas.
    strFileContent = Replace(expression:=strFileContent, _
                             Find:=vbTab, Replace:=",") 
    ' Can use Chr(9) instead of vbTab.

    ' Open a new file for output, write everything, and close.
    Set MyCsvFile = fso.OpenTextFile("c:\testfile.csv", ForWriting, True)
    MyCsvFile.Write strFileContent
    MyCsvFile.Close

End Sub
  1. MS Excel 열기
  2. 데이터 탭을 클릭합니다.
  3. 텍스트 시작 클릭
  4. tsv 파일을 선택합니다.
  5. 구분 기호 선택
  6. [Next] (다음)
  7. 체크 온 탭과 콤마를 클릭합니다.
  8. [완료] 를 누릅니다.

언급URL : https://stackoverflow.com/questions/5590631/how-to-convert-a-tab-separated-file-to-csv-format

반응형