閲覧ありがとうございます.
タイトル通りUnityからPythonを動かし,PythonサイドでCSVファイルの読み書きを行ってからUnityで編集されたcsvファイルを使いたいと思っています.
そのために以下のようなプログラムを書きましたが,エラーも反映もされていません.
Unity側では,ボタンを押すとプログラムが動作するように設定しました.
C#
1using System.Diagnostics; 2using System.IO; 3using UnityEngine; 4 5public class cs : MonoBehaviour 6{ 7 //pythonがある場所 8 private string pyExePath = @"(絶対パス)\python.exe"; 9 10 //実行したいスクリプトがある場所 11 private string pyCodePath = @"(絶対パス)\Assets\Scripts\csvf.py"; 12 private void Start() 13 { 14 //外部プロセスの設定 15 ProcessStartInfo processStartInfo = new ProcessStartInfo() 16 { 17 FileName = pyExePath, //実行するファイル(python) 18 UseShellExecute = true,//シェルを使うかどうか 19 CreateNoWindow = true, //ウィンドウを開くかどうか 20 RedirectStandardOutput = true, //テキスト出力をStandardOutputストリームに書き込むかどうか 21 Arguments = pyCodePath + " " + "Hello,python.", //実行するスクリプト 引数(複数可) 22 }; 23 24 //外部プロセスの開始 25 Process process = Process.Start(processStartInfo); 26 27 //ストリームから出力を得る 28 StreamReader streamReader = process.StandardOutput; 29 string str = streamReader.ReadLine(); 30 31 //外部プロセスの終了 32 process.WaitForExit(); 33 process.Close(); 34 35 36 } 37}
Python
1# -*- coding: utf-8 -*- 2import csv 3import sys 4 5with open('(絶対パス)/Assets/Resources/out1.csv','w',newline='') as f: 6 writer = csv.writer(f) 7 writer.writerow(['連番ID', '姓', '名']) 8 writer.writerow([1, '成功', '葵']) 9 writer.writerow([2, '成功1', 'さくら']) 10 writer.writerow([3, '成功2', '陽菜'])
回答1件
あなたの回答
tips
プレビュー