2012-08-10 3 views
2

VBA를 사용하여 Excel 워크 시트를 CSV 파일로 저장하고 있습니다. 매크로는이를 CSv로 저장 한 다음 Excel에서 엽니 다. 파일을 읽는 파이썬 코드를 가지고 있는데, 사용자가 파일을 선택하면 (tkinter를 사용하여) 열 수 있습니다.Python이 열린 CSV 파일의 파일 이름을 감지하여 검색합니다.

열려있는 CSV 파일을 감지하기 위해 파이썬 코드를 수정하여 사용자 선택 단계를 건너 뛸 수있는 방법이 있습니까? 파일 경로를 반환하거나 열린 csv 파일을 읽길 원합니다. 이것은 내 코드의 최신 버전입니다. csv 파일이 Excel에서 열려있는 경우 작동합니다.

import numpy as np 
from Tkinter import Tk 
from tkFileDialog import askopenfilename 
tk=Tk() 
tk.withdraw() 
filename = askopenfilename() 
data = np.genfromtxt(filename, dtype=[('x',float),('y',float)],comments='"', delimiter=',',skip_header=1,missing_values=True) 
tk.destroy() 
x=data['x'] 
x = x[np.logical_not(np.isnan(x))] 
y=data['y'] 
y = y[np.logical_not(np.isnan(y))] 
print x 
print y 

답변

1

어떤 OS입니까? Windows 인 경우 Get name of active Excel workbook from Python을 살펴보십시오. 질문 자체의 코드는 당신이 찾고있는 무엇을 할 수

그 질문의 답변에서 언급 한 바와 같이
import win32com.client 

xl = win32com.client.Dispatch("Excel.Application") 
print(xl.ActiveWorkbook.FullName) 

, 이것은 가장 최근에 열린 파일에 대한 경로를 인쇄하지만 경우에 매크로 같은 소리 파일을 열면 아마도 작동할까요? 그렇지 않으면 실제 답변을 살펴보십시오. 매우 완벽 해 보입니다.

관련 문제