Skip to main content
 首页 » 编程设计

Python 检测并检索打开的 csv 文件的文件名

2025年05月04日10zhenyulu

我正在使用 VBA 将 Excel 工作表另存为 CSV 文件。宏将其保存为 CSv,然后在 excel 中打开它。我有一个读取文件的 python 代码,由用户选择它(使用 tkinter)打开。

有没有办法修改我的 python 代码以检测打开的 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 

请您参考如下方法:

哪个操作系统?如果是Windows,看看Get name of active Excel workbook from Python .问题本身中的代码可能会满足您的要求:

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

正如那个问题的答案中提到的,这只会打印最近打开的文件的路径,但在你的情况下,这听起来像是宏正在打开文件,所以也许它会起作用?否则,请查看实际答案 - 看起来非常完整。