python - 允许Python脚本打开目录中的任何文件而不是硬编码名称的解决方案

标签 python wxpython

我有一个 Python 脚本,它打开一个文件并处理内容,最终创建一个单独的输出文件,我需要将其提供给其他人。问题是这个脚本需要每天运行,并且我用该脚本打开的文件每天不会具有相同的文件名。所以我知道我无法将文件名硬编码到脚本的 csv.reader(open(...) 部分。

虽然我总是可以重命名收到的文件以匹配硬编码到脚本中的文件名,但这并不理想,因为我每天都必须这样做,而且我会操纵原始文件,这是不行的。我希望有一个简单的解决方案来修改我的脚本以打开任何以特定扩展名(即 - .csv)结尾的文件,或者也许有一个通过 tkinter 或 wxpython 的 GUI 解决方案,我可以用它来创建一个简单的浏览用于将所选文件的名称传递到打开文件的脚本部分的文件接口(interface)。

这是我需要修复的脚本示例:

import csv

bs_ref = csv.reader(open('inputfile_14022011.csv','rb'))

<rest of script then processes the contents of the imported file but is not relevant to the question>

我想将“inputfile_14022001.csv”替换为允许为脚本的特定部分调用任何文件名的内容。不幸的是,我无法找到任何有用的内容来创建文件浏览器界面,该界面可用于将选定的文件名传递到脚本的特定部分。

感谢您提供的任何帮助。

最佳答案

既然你标记了wxpython,它可能是这样的(未经测试的)片段:

from wxPython.wx import *
...
application = wxPySimpleApp()
...
dialog = wxFileDialog ( None, style = wxOPEN )
if dialog.ShowModal() == wxID_OK:
   print 'Selected:', dialog.GetPath()
   bs_ref = csv.reader(open(dialog.GetPath(),'rb'))

关于python - 允许Python脚本打开目录中的任何文件而不是硬编码名称的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4997351/

相关文章:

python - 使用 numpy.reshape() 反转 skimage view_as_blocks()

python - 如何连接 Pandas 中的年份和月份列?

python - Google App Engine : Reverse Proxy + OpenID, 用户在登录后被重定向到 appspot 域

python - 如何在ListCtrl中设置选定的项目?

python - 在 TensorFlow 中,如何有选择地将函数仅应用于张量每行的最大元素?

python - Python 中的 with..as 子句断言

python - 响应式静态框?

python - 如何执行这个Python媒体播放器?

python - 使用鼠标滚轮和箭头键滚动 `wx.ScrolledPanel`

python - 为什么它必须是 GUI 线程的上下文?