Как открыть файл, который является файлом Excel для чтения в Python?
Я открыл текстовые файлы, например, sometextfile.txt
с помощью команды чтения. Как это сделать для файла Excel?
Как открыть файл, который является файлом Excel для чтения в Python?
Я открыл текстовые файлы, например, sometextfile.txt
с помощью команды чтения. Как это сделать для файла Excel?
вы можете использовать pandas
package.
Когда вы работаете с файлом excel с несколькими листами, вы можете использовать:
import pandas as pd
xl = pd.ExcelFile(path + filename)
xl.sheet_names
>>> [u'Sheet1', u'Sheet2', u'Sheet3']
df = xl.parse("Sheet1")
df.head()
df.head()
будет печатать первые 5 строк вашего файла Excel
Если вы работаете с файлом Excel с одним листом, вы можете просто использовать:
import pandas as pd
df = pd.read_excel(path + filename)
print df.head()
Попробуйте библиотеку xlrd.
[Изменить] - из того, что я вижу из вашего комментария, что-то вроде приведенного ниже фрагмента может сделать трюк. Я предполагаю, что вы просто ищете один столбец для слова "john", но вы можете добавить больше или сделать это более общей функцией.
from xlrd import open_workbook
book = open_workbook('simple.xls',on_demand=True)
for name in book.sheet_names():
if name.endswith('2'):
sheet = book.sheet_by_name(name)
# Attempt to find a matching row (search the first column for 'john')
rowIndex = -1
for cell in sheet.col(0): #
if 'john' in cell.value:
break
# If we found the row, print it
if row != -1:
cells = sheet.row(row)
for cell in cells:
print cell.value
book.unload_sheet(name)
Это не так просто, как открытие простого текстового файла, и для этого потребуется какой-то внешний модуль, поскольку для этого ничего не требуется. Вот несколько вариантов:
Если возможно, вам может потребоваться экспортировать таблицу Excel в виде файла CSV, а затем использовать встроенный модуль csv python для чтения:
Там openpxyl пакет:
>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
>>> print wb2.get_sheet_names()
['Sheet2', 'New Title', 'Sheet1']
>>> worksheet1 = wb2['Sheet1'] # one way to load a worksheet
>>> worksheet2 = wb2.get_sheet_by_name('Sheet2') # another way to load a worksheet
>>> print(worksheet1['D18'].value)
3
>>> for row in worksheet1.iter_rows():
>>> print row[0].value()
Вы можете использовать пакет xlpython, для которого требуется только xlrd. Найти его здесь https://pypi.python.org/pypi/xlpython и его документация здесь https://github.com/morfat/xlpython
Этот код работал у меня с Python 3.5.2. Он открывается и сохраняет и превосходит. В настоящее время я работаю над тем, как сохранять данные в файл, но это код:
import csv
excel = csv.writer(open("file1.csv", "wb"))
import pandas as pd
import os
files = os.listdir('path/to/files/directory/')
desiredFile = files[i]
filePath = 'path/to/files/directory/%s'
Ofile = filePath % desiredFile
xls_import = pd.read_csv(Ofile)
Теперь вы можете использовать мощность pandas DataFrames!