2017-01-17 3 views
1

Я подготовил сценарий Python, который считывает из файлов Excel:Запуск .py код из аргументов командной строки, используя Enthought Навес

import glob 
import pandas as pd 
import StringIO 
import sys 
import os 
from xlrd import open_workbook 

filelocation = str(sys.argv[0]) 
outputlocation = str(sys.argv[1]) 
FileExtension = str(sys.argv[2]) 
Separator = str(sys.argv[3]) 



#filelocation = 'C:\Desktop\MasterFile.xlsx' 
#outputlocation = 'C:\Desktop\output' 
wb = open_workbook(filelocation) 

Если я исполню ее через Jupyter Notebook, он выполняет успешно.

Но когда я запускаю его из командной строки, передавая следующие параметры дает мне ошибку

Командная строка:

python MergeFilesv1_2.py "C:\Desktop\MasterFile.xlsx" "C:\Desktop\output" ".csv" "," 

Сообщение об ошибке:

Traceback (most recent call last): 
File "MergeFilesv1_2.py",line 22, in <module> 
wb = open_workbook(filelocation) 
File "C:\Users\Sha\appData\Local\Enthought\Canopy\User\lib\site-packages\xlrd\_init__.py",line 441, in open_workbook 
ragged_rows=ragged_rows, 
File "C:\Users\Sha\appData\Local\Enthought\Canopy\User\lib\site-packages\xlrd\book.py",line 91, in open_workbook_xls 
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) 
File "C:\Users\Sha\appData\Local\Enthought\Canopy\User\lib\site-packages\xlrd\book.py",line 1230, in getbof 
bof_error('Expected BOF record; found %r' %SELF.MEM[SAVPOS:SAVPOS + 8]) 
File "C:\Users\Sha\appData\Local\Enthought\Canopy\User\lib\site-packages\xlrd\book.py",line 1224, in bof_error 
raise XLRDError('Unsupported format, or corrupt file:' + msg) 
xlrd.biffh.XLRDError:Unsupported format, or corrupt file: Expected BOF record, found '\n# codin' 

ответ

2

Имя вашего файла также является аргументом.

Это означает,
sys.argv[0] назначается как MergeFilesv1_2.py,
sys.argv[1] назначается как "C:\Desktop\MasterFile.xlsx" и так далее.

+0

Спасибо Lafexlos. Не знаю, как я это пропустил. –

+1

@SachinKamble http://stackoverflow.com/help/someone-answers –

+1

@SachinKamble Чтобы быть ответственным членом сообщества переполнения стека, отметьте ответ, приведенный выше, в качестве правильного ответа и увеличьте его. Для более подробного объяснения, пожалуйста, прочитайте ссылку, приведенную в предыдущем комментарии. –