.xlsx
파일을 .txt
탭으로 구분 된 파일로 변환하는 다음 방법을 작성했습니다.xcel에서 탭으로 정수로 변환 정수형 파일 변환
import sys
import xlrd
import csv
def xlsx_to_tab(self, inFile):
''' Convert an xlsx file to a tab delimited file. '''
excel_file = xlrd.open_workbook(inFile)
worksheet = excel_file.sheet_names()[0]
sh = excel_file.sheet_by_name(worksheet)
extentPos = inFile.rfind('.')
tab_file = open(inFile[:extentPos] + '.txt', 'w')
writetab = csv.writer(tab_file, delimiter='\t', quoting=csv.QUOTE_ALL)
for row in range(sh.nrows):
writetab.writerow(sh.row_values(row))
tab_file.close()
이 방법은 성공적으로하지만, 무슨 일이 원래의 엑셀 파일에서 정수 할 것을 .txt
파일 출력에 수레로 출력하는 표시, 파일 형식 사이의 변환합니다.
Excel의 셀 형식 설정과 관련이 있다고 생각합니다. 즉, 나는이 스크립트 내에서 이것을 처리하고 싶습니다. 파일 내의 요소를 int()
이라는 정수로 명시 적으로 정의하고 싶습니다. 전에 지루한 모든 Excel 파일을 검사하고 변경하는 것과는 대조적입니다.
이 메서드는 파일을 한 행씩 처리합니다. 각 행의 개별 요소를 검색하여 형식으로 입력 할 수 있나요? 주소
This question 종류의 문제는 :
는하지만 값의 전체 열 반대로 한 번에 하나 개의 값을 수행하는 방법을 보여줍니다.
좀 더 명확히하기 위해 개별 열을 정수로 캐스팅하려고하지만 모든 열을 캐스팅하지는 않습니다. 따라서 각 행의 일부 요소 만 변환해야합니다.
for row in range(sh.nrows):
new_row = [int(x) for x in sh.row_values(row)]
writetab.writerow(new_row)
편집 : : OP의와
숫자 열은 열 1,3, 새 파일에 쓰기 전에 int
에 행의 요소를 변환하는 5
모든 셀이 'int'이어야하는 'float'입니까? 아니면 다른 데이터 유형도 있습니까? – dursk
각 셀은 숫자 값입니다. float 또는 int 중 하나로서 int에 표시됩니다. – Malonge