Python无法获取文件的完整路径名

shr*_*ish 11 python directory path

试图在我的驱动器上的目录中钻取,其中包含子分支.当我找到具有我正在寻找的文件扩展名的文件时,我想要完整的文件路径.现在这就是我所拥有的:

import os
import Tkinter
import tkFileDialog
from Tkinter import Tk
from tkFileDialog import askopenfilename

root = Tkinter.Tk().withdraw()
dirname = tkFileDialog.askdirectory(initialdir='.')

list = [] 


for root, dirs, files in os.walk(dirname):
    for name in files:
        if name.find(".txt") != -1:
           name = str(name)
           name = os.path.realpath(name)
           list.append(name)

print list
Run Code Online (Sandbox Code Playgroud)

这是返回的

c:\users\name\desktop\project\file.txt
Run Code Online (Sandbox Code Playgroud)

但是file.txt位于

c:\users\name\desktop\project\folder1\file.txt
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 8

您可能需要将文件名加入包含它的目录:

os.path.realpath(os.path.join(root,name))
Run Code Online (Sandbox Code Playgroud)

我只是测试了这个:

import os
for root, dirs, files in os.walk('.'):
    for name in files:
        if name == 'foo':
           name = str(name)
           name = os.path.realpath(os.path.join(root,name))
           print name
Run Code Online (Sandbox Code Playgroud)

具有以下目录结构:

test
  + foo
  + test2
     + foo
Run Code Online (Sandbox Code Playgroud)

它运作正常.