Python 2.7 Python2.7使用Tkinter连接源路径和文件名会导致非类型错误

Python 2.7 Python2.7使用Tkinter连接源路径和文件名会导致非类型错误,python-2.7,Python 2.7,我使用的是Python2.7和导入的Tkinter和TK 我试图做的是使用一个源路径(目录路径),并通过打开windows资源管理器将其与拾取文件连接起来。这将使用户不必键入文件名 我意识到我没有使用返回,并将得到以下错误: TypeError:无法连接'str'和'NoneType'对象 在这里搜索这个错误后,我发现我需要返回。我试着把字符串放在括号里,但没用。我肯定错过了什么 以下是我的代码示例: from Tkinter import * from Tkinter import Tk fr

我使用的是Python2.7和导入的Tkinter和TK

我试图做的是使用一个源路径(目录路径),并通过打开windows资源管理器将其与拾取文件连接起来。这将使用户不必键入文件名

我意识到我没有使用返回,并将得到以下错误: TypeError:无法连接'str'和'NoneType'对象

在这里搜索这个错误后,我发现我需要返回。我试着把字符串放在括号里,但没用。我肯定错过了什么

以下是我的代码示例:

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文件和自定义字典来合并。所有这些都有效。我希望我在这个问题上提供了足够的信息

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\u Draw\u CountC:/Users/kevin/Desktop/myinput.txt'