使用 python 2.7/ pyMel 从 Excel 中提取信息?
Extract information from Excel with python 2.7/ pyMel?
我知道这要求很多,但我研究了很多在 excel 文档中使用 python 查找列或查找行的方法。
但是,当我无权访问这些解决方案时,您需要导入不同的包。我这样做的主要动机是利用预制的 excel 文档,其中列出了着色器,并根据简短搜索提取它们。
那么,有没有人成功地使用 python 阅读了 excel 文档?如果是,您是否能够将命名行与命名列相匹配?
编辑:
之所以选择答案,是因为它是最接近的解决方案,尽管它不一定能回答我的问题。然而,考虑到用户和 his/her excel 文档将利用相同的列和行来获得可用的数据库,它仍然会提供一个非常合理的解决方案。
长话短说:
在不使用外部包的情况下,没有简单的方法可以将列与行进行比较以获取数据集。将数据提取为数组并指定哪个 "column" 是哪个更容易。
我将 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)
您也可以使用built-in读取CSV文件csv module读取CSV文件,不需要安装任何外部模块。
import csv
with open('names.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['first_name'], row['last_name'])
如果你只是抓取 reader 的全部内容并将它们塞入一个列表,列表将包含所有行,并且每一行将是一个使用第一个 headers 的字典排。进入特定的单元格类似于:
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]
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
。
我知道这要求很多,但我研究了很多在 excel 文档中使用 python 查找列或查找行的方法。
但是,当我无权访问这些解决方案时,您需要导入不同的包。我这样做的主要动机是利用预制的 excel 文档,其中列出了着色器,并根据简短搜索提取它们。
那么,有没有人成功地使用 python 阅读了 excel 文档?如果是,您是否能够将命名行与命名列相匹配?
编辑: 之所以选择答案,是因为它是最接近的解决方案,尽管它不一定能回答我的问题。然而,考虑到用户和 his/her excel 文档将利用相同的列和行来获得可用的数据库,它仍然会提供一个非常合理的解决方案。
长话短说:
在不使用外部包的情况下,没有简单的方法可以将列与行进行比较以获取数据集。将数据提取为数组并指定哪个 "column" 是哪个更容易。
我将 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)
您也可以使用built-in读取CSV文件csv module读取CSV文件,不需要安装任何外部模块。
import csv
with open('names.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['first_name'], row['last_name'])
如果你只是抓取 reader 的全部内容并将它们塞入一个列表,列表将包含所有行,并且每一行将是一个使用第一个 headers 的字典排。进入特定的单元格类似于:
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]
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 读取和写入数据到 Excelhello.xlsx
位于 D:\Program Files\Autodesk\Maya2017\bin
。