Я использую xlrd 0.9.4, и я хотел бы проверить, действительно ли файл, который я должен открыть, действителен.xlrd - выпуск при открытии файла
Чтобы сделать это, я написал этот код in according with this question:
try:
book = xlrd.open_workbook(file_path)
print "Done"
except XLRDError:
print "Wrong type of file."
где file_path это путь моего файла.
Это нормально работает, проблема в следующем. Прежде всего, у меня есть действительный файл .xls, поэтому сценарий печатает Выполнено. Предположим, что действительный .xls-файл переименован (также расширение), например, из test.xls в test.txt.
Если я запускаю сценарий, у меня тот же результат (Выполнено).
Вместо этого, если я использую «настоящий» .txt-файл (пустой или с некоторым текстом), сценарий печатает Неверный тип файла.
Это происходит потому, что «структура» файла не изменяется? Я делаю что-то неправильно? Есть другой тип исключения, который я могу добавить в , за исключением ветка?
Заранее спасибо
вы можете использовать 'if file_path.endswith (". Xls ") или file_path.endswith (". Xlsx "):' для проверки расширения. – Andrew
Что вы подразумеваете под "valid"? –
Что именно такое поведение не так, как вы ожидаете? Для меня это имеет полный смысл. Имя/расширение файла не имеет * ничего * для его содержимого. Фактически - вход может даже быть объектом StringIO, поэтому даже не было бы физического имени файла ... Вы запрашиваете библиотеку, если она может обрабатывать данные как действительную книгу, а приведенный выше код делает именно это ... –