如何在Python 2.7中翻译以下代码(用TCL编写)?
set types {{"Text file" ".txt"} {"All Files" "*.*"}}
set file [tk_getOpenFile -filetypes $types -parent . -initialdir [pwd]]
if {$file=={}} {return}
set f [open $file r]
set fullPath [file rootname $file]
set name [lrange [split $fullPath "/"] end end]
答案 0 :(得分:1)
要使用文件对话框,您必须导入tkFileDialog。它可以像这样使用:
import tkFileDialog
import os # so we can call getcwd()
...
types = (("Text file", ".txt"), ("All Files", "*.*"))
file = tkFileDialog.askopenfilename(filetypes=types, initialdir=os.getcwd())
要打开文件,有很多方法。字面翻译将是:
f = open(file, "r")
更加pythonic的方式是使用with
语句:
with open(file, "r") as f:
<code to work with the file here>
请注意,如果您想要获取路径并同时打开它,则可以使用askopenfile
而不是askopenfilename
。在这种情况下,askopenfile
将在tcl代码中返回等效的f
。
os.path模块为您提供了大量处理文件名的功能。