2014-01-07 3 views
1

내 스크립트는 xlwt 모듈을 사용하여 XLS 파일 (일부 데이터가 채워진 파일)을 만들고 작업 디렉토리에 저장합니다. 이 작업의 첫 번째 부분은 성공적으로 수행됩니다. 동일한 스크립트에서 다음 부분은 저장된 XLS 파일을 읽고 해당 파일을 기반으로 일부 값으로 채워진 다른 XLS 파일을 만드는 것입니다. 처음 XLS가 저장되면 xlrd를 사용하여 저장된 XLS를 읽는 중 오류가 발생합니다.python - xlwt를 사용하여 동일한 파일을 만든 후 xlrd로 XLS 파일을 여는 중 오류가 발생했습니다.

ERROR: Traceback (most recent call last): 
ERROR: File "C:\Esri_SCRIPTS\GDB_FC_SourceMapping_Service_V6\GDB_FC_SourceMapping_V6_Dev.py", line 200, in <module> 
ERROR:  wb=xlrd.open_workbook(CurWrokDir + '\DataSources.xls') 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 454, in open_workbook 
ERROR:  bk.parse_globals() 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1473, in parse_globals 
ERROR:  self.handle_sst(data) 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1446, in handle_sst 
ERROR:  self._sharedstrings = unpack_SST_table(strlist, uniquestrings) 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1663, in unpack_SST_table 
ERROR:  nchars = local_unpack('<H', data[pos:pos+2])[0] 
error: unpack requires a string argument of length 2 
ERROR: 
ERROR: unpack requires a string argument of length 2 

이 포럼에서 검색 한 작업은 첫 번째 부분에서 저장된 XLS 출력을 열어 저장하고 닫는 것입니다. 스크립트의 두 번째 부분을 실행하면 성공적으로 실행됩니다.

내가 달성하고자하는 것은 스크립트를 오류없이 모두 실행하는 것입니다. 즉, 스크립트를 실행하면 ... 첫 번째 부분은 XLS를 저장하고 즉시 두 번째 부분은 첫 번째 부분에서 XLS 출력 저장을 읽고 XLS로 두 번째 출력을 생성합니다.

도움이 될 것입니다. 미리 감사드립니다.

+0

안녕하세요 여러분,이 python 문제를 게시하기위한 올바른 위치를 모르겠지만,이 문제는 나를 도와 줄 사람이 누구입니까? – user3167453

+0

여기에서 디버깅하는 데 도움이되는 정보가 충분하지 않습니다. 여러분은 사용하고있는'xlwt'와'xlrd' 프로그램의 작고 완전한 예를 제공해야합니다. – jmcnamara

+0

안타깝게도 조직 용으로 개발 된 코드를 공유 할 수는 없지만 필요한만큼 자세한 정보를 제공 할 수는 있습니다. – user3167453

답변

0

xlwt과를 통해 파일을 작성에 근본적인 문제 예와 같이 xlrd를 통해 그것을 다시 읽는 없습니다 :

import xlwt 
import xlrd 

# Write an Excel file. 
workbook = xlwt.Workbook() 
worksheet = workbook.add_sheet('Sheet1') 

worksheet.write(0, 0, 'Hello') 
worksheet.write(1, 0, 12345) 

workbook.save('test.xls') 

# Now read it back in. 
workbook = xlrd.open_workbook('test.xls') 
worksheet = workbook.sheet_by_name('Sheet1') 

print worksheet.row(0)[0].value 
print worksheet.row(1)[0].value 

인쇄 :

$ python reread.py 
Hello 
12345.0 

것은 그래서 당신에게 달려은 오류를 일으키는 프로그램의 문제점을 디버그하십시오.

Excel에서 파일을 저장 한 후에도 문제가 보이지 않는다면 xlwt에서 문제가 될 수 있지만 개발자가이를 디버그 할 수있는 방법을 제공해야합니다.