2016-03-07 103 views
-2

以下代码(用TCL编写)如何在Python 2.7中转换?Python。文件打开程序

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

我添加了'tcl'标签,因为至少你会想要一个知道两种语言的人的回答。但是,您应该先尝试自己翻译,然后询问您遇到的具体问题。如果你不了解Python,教程将是一个很好的起点。 – chepner

+0

感谢您的理事会。我会试着问一些具体的问题。 –

+0

你关心'fullPath'的价值,还是只是达到目的的一种手段? (阅读:你可以在没有获取根名称的情况下在python中获得文件名) –

回答

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") 

更Python的方式将与with声明:

with open(file, "r") as f: 
    <code to work with the file here> 

请注意,如果你想获得的路径,并在同一时间,你可以用打开askopenfile而不是askopenfilename。在这种情况下,askopenfile将在tcl代码中返回相当于f的值。

os.path模块为您提供了大量使用文件名的函数。

+0

非常感谢您的帮助! –