2013-07-18 12 views
9

मेरे ड्राइव पर एक निर्देशिका के माध्यम से ड्रिल करने की कोशिश कर रहा है जिसमें इसके सबफ़ोल्डर हैं। जब मुझे उन फाइलें मिलती हैं जिनमें फ़ाइल एक्सटेंशन हैं, तो मैं देख रहा हूं कि मैं पूर्ण फ़ाइल पथ चाहता हूं। अभी यह है कि मैं क्या है:पायथन को फ़ाइल का पूरा पथ नाम नहीं मिला

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 

उत्तर

8

आप शायद निर्देशिका जिसमें वह शामिल है के साथ फ़ाइल नाम शामिल होने की आवश्यकता

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

+0

@reddman - FWIW, मुझे डाउनवॉट्स को समझ में नहीं आया। मैं ऊपर उठाया। :) – mgilson

+0

हाहा आपको फिर से धन्यवाद – shreddish

0

उपयोग में स्थित है:

os.path.abspath 
बजाय

। आपका रास्ता पूर्ण नहीं है।

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

उदहारण के लिए:

+0

मैंने अनुपस्थिति की कोशिश की है, यह वही परिणाम देता है – shreddish

संबंधित मुद्दे