[PYTHON] Durch Verknüpfen von Maya mit Excel oder Tabellenkalkulationen ~

Es kann für diejenigen offensichtlich sein, die Werkzeuge mit Python herstellen, Es ist eine großartige Gelegenheit, also möchte ich etwas zusammen lassen ٩ (๑ • ̀ω • ́๑) ۶

Motivation

○ csv ist in Ordnung, aber Designer möchten auch Excel ~ lesen und verwenden ○ Ich möchte die Anzahl der Frames aus der Excel-Bewegungsliste ~ abrufen ○ Ich möchte, dass Sie den Status von Google Spreadsheet nach der Ausgabe und dem Hochladen von ~ ohne Erlaubnis aktualisieren

Ich möchte auf externe Daten wie ... verweisen und diese aktualisieren! !! !! !! !! !! !!

Was ist ein externes Modul?

Es gibt viele externe Module von Drittanbietern in Python. Sie können leicht solche Dinge tun, die Mel nicht tun kann.

import csv
import os

In Python können Sie verschiedene Module aufrufen, indem Sie zuerst den Import einfügen. Da csv und os Originalmodule sind, müssen sie nicht separat abgelegt werden.

Maya ist eine Python2-Serie. Lassen Sie das Modul also vorsichtig fallen!

Dieses Mal werde ich die Module direkt in den Skriptordner von Maya legen, Bei der Teamverwaltung ist es daher besser, in einem separaten Verzeichnis zu verwalten Details finden Sie hier! http://www.comtec.daikin.co.jp/DC/UsersNotes/Ritaro/tutorial/maya_04/ http://tm8r.hateblo.jp/entry/2016/10/18/222755

Ich habe es so direkt in den Skriptordner gelegt.

image

Diese Umgebung ○ Windows 7 ○ Maya 2016 ○ (○. ○. ○) jedes Moduls ist die diesmal verwendete Version!

Ich denke, es ist besser, mit pip zu installieren Wie benutzt man Pip? http://www.python-izm.com/contents/basis/pip.shtml Dieses Mal habe ich einfach die an anderer Stelle installierte in Skripte verschoben.

Verwenden Sie Excel

xlrd (0.9.4) xlwt (1.0.0) xlutils (1.7.1)

Ermitteln Sie die Anzahl der Frames aus dem Szenennamen in Excel und schreiben Sie das heutige Datum Speichern Sie Excel in .xls!

image

import xlrd
import xlwt
from xlutils.copy import copy
import maya.cmds as cmds
import os
import datetime

excel = "" #Excel-Dateipfad
scene = os.path.splitext(cmds.file(q=True, shortName=True, sceneName=True))[0] #Holen Sie sich den Namen der Szene

read = xlrd.open_workbook(excel)

ex_row = 0  #Speichern Sie, welche Zeile aktualisiert wird

d = datetime.datetime.today() #Holen Sie sich das heutige Datum
today = d.strftime("%Y/%m/%d")

sheet_1 = read.sheet_by_index(0)
for col in range(sheet_1.ncols):
    for row in range(sheet_1.nrows):
        if scene == sheet_1.cell(row, col).value:
            ex_row = row
            print u"Rahmen starten:" + sheet_1.cell(row, 1).value + u"Endrahmen:" + sheet_1.cell(row, 2).value
            continue
            
#Ausgabeverarbeitung usw., falls erforderlich

write = copy(read)   #Kopieren Sie das Objekt zum Lesen vollständig in das Objekt zum Schreiben, einschließlich des Stils
sheet1 = write.get_sheet(0)    
sheet1.write(ex_row, 3, today) #Fügen Sie das heutige Datum in die 4. Spalte ein
write.save(excel)

Tabellenkalkulation verwenden

Ich habe mich auf diesen Bereich bezogen! http://qiita.com/koyopro/items/d8d56f69f863f07e9378

Grundsätzlich machen Sie dasselbe wie oben in Excel

gspread (0.4.1) httplib2 (0.9.2) oauth2client (4.0.0) requests (2.12.1) six (1.10.0)

import os
import datetime
import maya.cmds as cmds
import gspread
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow


flow = OAuth2WebServerFlow(client_id='Kunden ID',
                           client_secret='Kundengeheimnis',
                           scope='https://spreadsheets.google.com/feeds',
                           redirect_uri="urn:ietf:wg:oauth:2.0:oob")
                           
scene = os.path.splitext(cmds.file(q=True, shortName=True, sceneName=True))[0]

d = datetime.datetime.today() #Holen Sie sich das heutige Datum
today = d.strftime('%Y/%m/%d')

storage = Storage('cred.dat') #Datei zum Speichern von Anmeldeinformationen
credentials = storage.get()
if credentials is None or credentials.invalid == True:
    authorize_url = flow.step1_get_authorize_url()
    cmds.confirmDialog(m='Go to the following link in your browser: ' + authorize_url)
    code = raw_input('Enter verification code: ').strip()
    credential = flow.step2_exchange(code)
    storage.put(credential)
    credential.set_store(storage)
    credentials = credential
    
gc = gspread.authorize(credentials)
spr = gc.open_by_key('Tabellenkalkulations-ID')

for j, worksheet in enumerate(spr.worksheets()):
    worksheet.get_all_values()
    list_of_lists = worksheet.get_all_values()
    for i, l in enumerate(list_of_lists):
        if l[0] == scene:
            print u'Rahmen starten:' + l[1] + u'Endrahmen:' + l[2]
            continue
            
for j, worksheet in enumerate(spr.worksheets()):
    worksheet.get_all_values()
    list_of_lists = worksheet.get_all_values()
    for i, l in enumerate(list_of_lists):
        if l[0] == scene:
           worksheet.update_acell('D' + str(i+1), today)

Wenn Sie zum ersten Mal darauf zugreifen spread1.png Weil so etwas herauskommen wird Kopieren Sie die Adresse und fügen Sie sie in Ihren Browser ein spread2.png Wenn Sie mit Maya auf Bestätigen klicken, wird das folgende Fenster angezeigt. Kopieren Sie daher den Code des Browsers spread3.png Ab dem zweiten Mal werden die Informationen in cred.dat angezeigt und abgerufen, sodass diese Arbeit nur einmal ausgeführt wird.

Es hat nichts mit Maya zu tun, sondern mit den Daten in der Tabelle Ich habe auch so etwas wie überprüft, ob es sich auf dem Server des Unternehmens befindet, und den Status aktualisiert. Wenn Sie mit Maya verschiedene Aufgaben ausführen können, können Designer möglicherweise verschiedene Tools verteilen, ohne Python fallen zu lassen!

Es tut mir leid, dass ich nicht viel mit Maya Python zu tun habe!

Meine Beförderung

Wenn Sie Hilfe von einer Katze bekommen möchten, geben Sie mir einen Job! !! !! !! !! !! !! Twitter: @ yukarin33

Recommended Posts

Durch Verknüpfen von Maya mit Excel oder Tabellenkalkulationen ~
Excel mit Python
Behandle Excel mit Python
3D oder D mit Py
Lesen Sie Excel mit openpyxl
Betreiben Sie Excel mit Python (1)
Betreiben Sie Excel mit Python (2)
Verarbeiten Sie große Excel-Dateien mit Python, um die Produktivität zu verbessern
Scrapen der gewünschten Daten von der Website durch Verknüpfen von Python und Excel