2024年2月1日木曜日

pythonでファイル操作は、ディレクトリを戻す

 pythonでctypesフォルダダイアログを使うとソルバからの解がない状態になってしまうようです。pythonは、ソルバ起動の前段で実行されますが、自分自身が既定フォルダを変えてしまうようです。これは、ユーザ自身で元に戻す以外に対策方法はありません。

対策は、イニシャルフォルダを保存しておいて、抜けるときに元に戻すことです。


import sc3
import datetime
import ctypes
import os
import csv
import win32gui, win32con

def get_open_file_name(title):
    filter='csv\0*.csv\0'
    customfilter='Other file types\0*.*\0'
    fname, customfilter, flags=win32gui.GetOpenFileNameW(
    InitialDir=project_file_path, 
    Flags=win32con.OFN_ALLOWMULTISELECT|win32con.OFN_EXPLORER,
    File='', DefExt='csv',
    Title=title,#
    Filter=filter,
    CustomFilter=customfilter,
    FilterIndex=0)
    return str(fname)

def get_shift_info():
    filename=get_open_file_name("Open CSV File")
    print(filename)
    list=[]
    with open(filename, encoding='utf8', newline='') as f:
        csvreader = csv.reader(f)
        for row in csvreader:
            list.append(row)
            print(row)
    

initial_path = os.getcwd() #Get initial folder path
#print(initial_path)
get_shift_info()#Your Operation
os.chdir(initial_path)#Restore initial folder path for solving engine.

0 件のコメント:

コメントを投稿