2

我知道这要求很多,但我已经研究了很多在 Excel 文档中使用 python 查找列或查找行的方法。

但是,当我无权访问它们时,这些解决方案需要您导入不同的包。我这样做的主要动机是利用文档中列出的带有着色器的预制 excel 文档,并根据简短的搜索提取它们。

那么,有没有人成功地使用 python 来读取一个 excel 文档,如果是的话,你是否能够将命名行与命名列进行匹配?


编辑:选择答案是因为它是最接近的解决方案,尽管它不一定回答我的问题。但是,考虑到用户和他/她的 excel 文档将使用相同的列和行来获取可用数据库的上下文,它仍然会提供一个非常合理的解决方案。

TL;博士:

在不使用外部包的情况下,很难将列与行进行比较以获取数据集。将数据提取为数组并指定哪个“列”更容易。

4

4 回答 4

3

您还可以使用内置的csv 模块读取 CSV 文件来读取 CSV 文件,因此不需要安装任何外部模块。

import csv
with open('names.csv') as csvfile:
     reader = csv.DictReader(csvfile)
     for row in reader:
         print(row['first_name'], row['last_name'])

如果您只是抓取阅读器的全部内容并将它们填充到一个列表中,那么列表将包含所有行,并且每一行将是使用第一行中的标题的字典。到达特定单元格将类似于:

records = []
with open('names.csv') as csvfile:
     reader = csv.reader(csvfile)
     for row in reader:
         records.append(row)

# cel "A4" would be
records[0][3]
于 2015-04-16T18:51:28.943 回答
1

我将我的 excel 文件保存为.csv文件,并使用参数导入数据numpy.genfromtxt并使用delimiter=','参数来解析测试文件。

例如:

import numpy
data = numpy.genfromtxt("my_file.csv", delimiter=",")
# do stuff with data
于 2015-04-15T22:42:27.003 回答
0

模块 xlrd 已经在 python 包中并且非常易于使用:

import xlrd
xlsFile = xlrd.open_workbook(path)
sheetName = xlsFile.sheets()[0].name

for s in xlsFile.sheets():
    for row in range(s.nrows):
        print s.cell(row, 1)
于 2015-04-16T13:45:52.827 回答
-1

1.安装

Maya 在所有受支持的平台上使用 Python 版本 2.7.11。Maya 的独立 Python shell 在 Windows 上命名 mayapy.exe ,位于D:\Program Files\Autodesk\Maya2017\bin\mayapy.exe. 放到系统环境路径下。

如果pip.exe找不到,请转到https://pip.pypa.io/en/stable/installing/并下载get-pip.py.

从控制台:

C:\Users\JM-FF>python get-pip.py

成功安装 pip 后,pip.exe位于D:\Program Files\Autodesk\Maya2017\Python\Scripts. 把这个放到系统环境路径下。

安装 XlsxWriter:

C:\Users\JM-FF>pip install XlsxWriter

2.步骤

现在在 ScriptEditor 中打开你的 Maya,写下:


import xlsxwriter

workbook = xlsxwriter.Workbook('hello.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write(11,3,"hello")
workbook.close()

现在,您可以使用 Python 从 Maya 读取数据并将数据写入 Excel。

并且hello.xlsx位于D:\Program Files\Autodesk\Maya2017\bin.

于 2019-09-02T09:05:14.317 回答