13

Trying to drill through a directory on my drive that has subfoldrs within it. When I find files that have the file extensions I'm looking for I want the full file path. Right now this is what I have:

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

This is returned

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

however that file.txt is located in

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

2 Answers 2

9

You probably need to join the filename with the directory that contains it:

os.path.realpath(os.path.join(root,name))

e.g. I just tested this:

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

with the following directory structure:

test
  + foo
  + test2
     + foo

and it worked properly.

Sign up to request clarification or add additional context in comments.

2 Comments

worked perfectly thank you! not sure why I was receiving down votes on this when the other question that was already asked didnt even answer my own question...
@reddman -- FWIW, I didn't understand the downvotes either. I upvoted. :)
0

Use:

os.path.abspath

instead. Your path is not absolute.

1 Comment

agreed, I was using os.path.abspath(file) and it was missing the parent folder in the returned filepath.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.