0

我正在使用 Python 2.7 并导入了 Tkinter 和 TK。

我想要做的是使用源路径(目录路径)并通过打开 Windows 资源管理器从选择文件中连接它。这将使用户不​​必输入文件名。

我意识到我没有使用 return 并且会收到以下错误:TypeError: cannot concatenate 'str' and 'NoneType' objects

在此处搜索此错误后,我发现我需要退货。我试图将字符串放在括号中,但它不起作用。我肯定错过了一些东西。

这是我的代码示例:

from Tkinter import *
from Tkinter import Tk
from tkFileDialog import askopenfilename

source = '\\\\Isfs\\data$\\GIS Carto\TTP_Draw_Count'  ## this a public directory path
filename = ''

filename = getFileName()  ##this part is in a different def area.

with open (os.path.join(source + filename), 'r' ) as f: ## this is were it failing.

def getFileName():

    Tk().withdraw()
    filename = askopenfilename()
    return getFileName()

我需要连接用于处理 csv 文件的源 + 文件名。

我不想把所有的代码都放在这里,因为它很长并且需要一个 csv 文件和自定义字典来合并。所有这些都有效。我希望我在这个问题上提供了足够的信息。

4

1 回答 1

1
def getFileName():
    Tk().withdraw()
    filename = askopenfilename()
    return getFileName()

您没有返回您在此处获得的文件名。将其更改为:

def getFileName():
    Tk().withdraw()
    filename = askopenfilename()
    return filename

另请注意,askopenfilename获取所选文件的完整路径,因此source+filename将评估为类似u'\\\\Isfs\\data$\\GIS Carto\\TTP_Draw_CountC:/Users/kevin/Desktop/myinput.txt'

于 2013-10-11T13:50:00.243 回答