2013-07-18 16 views
9

Sürücümde, içinde alt klasörleri olan bir dizini incelemeye çalışıyorum. Aradığım dosya uzantısına sahip dosyaları bulduğumda tam dosya yolunu istiyorum. Şu anda bu ben ne var: yerinePython, dosyanın tam yol adını alamıyor

os.path.abspath 

: O file.txt

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

cevap

8

Muhtemelen bunu içeren dizine ile dosya adı katılması gerekir Aşağıdaki dizin yapısı ile

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 

: Ben sadece bu test

test 
    + foo 
    + test2 
    + foo 

ve düzgün çalıştı.

+1

mükemmel bir şekilde çalıştı! Ben zaten sordu diğer soru bile kendi sorumu cevap vermedi bu yüzden oy aşağı alıyordu emin değilim ... – shreddish

+0

@reddman - FWIW, Ben de aşağı notları anlamadım. Ayrıldım. :) – mgilson

+0

haha ​​tekrar teşekkürler – shreddish

0

Kullanım bulunan ancak

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 

Bu

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

döndürülür . Yolun mutlak değil.

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

örn:

+0

abspath denedim, aynı sonucu döndürdüğü – shreddish