[英]Extract information from Excel with python 2.7/ pyMel?
我知道这要问很多,但是我研究了很多方法在excel文档中使用python查找列或查找行。
但是,这些解决方案要求您在我无权访问它们时导入不同的程序包。 我这样做的主要目的是利用预制的excel文档以及文档中列出的着色器,然后根据简短搜索将其提取出来。
那么,有没有人成功地使用python读取excel文档,如果是,您是否能够将命名行与命名列匹配?
编辑:之所以选择答案,是因为它是最接近的解决方案,尽管它不一定能回答我的问题。 但是,考虑到用户及其excel文档将利用相同的列和行来获取可用数据库的上下文,它仍将提供一个非常合理的解决方案。
TL; DR:
如果不使用外部包,则没有简单的方法可以将列与行进行比较以获取数据集。 仅将数据提取为数组并指定哪个“列”会更容易。
您还可以使用内置的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]
我将excel文件另存为.csv
文件,并使用numpy.genfromtxt
导入数据,并使用delimiter=','
参数解析测试文件。
例如:
import numpy
data = numpy.genfromtxt("my_file.csv", delimiter=",")
# do stuff with data
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)
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
现在,在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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.