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

13

我试图浏览我的驱动器中的一个包含子文件夹的目录。当我找到具有我想要的文件扩展名的文件时,我希望得到完整的文件路径。目前这是我拥有的:

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

这是返回的内容

c:\users\name\desktop\project\file.txt

然而,file.txt位于

c:\users\name\desktop\project\folder1\file.txt
2个回答

9
你可能需要将文件名与包含它的目录结合起来:
os.path.realpath(os.path.join(root,name))

例如,我刚刚测试了这个:
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

以下是目录结构:

test
  + foo
  + test2
     + foo

而且它正常工作。


1
工作得非常完美,谢谢!不确定为什么我在这个问题上收到了负评,因为另一个已经提出的问题甚至没有回答我的问题... - shreddish
@reddman -- 顺便说一句,我也不理解为什么会有人踩你。我给你点了赞。 :) - mgilson

0

使用:

os.path.abspath

请使用绝对路径,而不是相对路径。


同意,我之前使用的是os.path.abspath(file),但返回的文件路径中缺少父文件夹。 - agleno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接