मैं केवल निर्देशिका की फाइलों को सूचीबद्ध करना चाहता हूं और उपनिर्देशिका को छोड़ना चाहता हूं।

वर्तमान कोड उपनिर्देशिकाओं में भी फाइलों को सूचीबद्ध करता है लेकिन वह नहीं है जो मैं चाहता हूं:


import os 

list_files = []    
for root, dirs, files in os.walk(input_folder):
        for filename in files:
            joined = os.path.join(input_folder, filename)
            list_files.append(joined)

निर्देशिका में संसाधित करने के लिए फ़ाइलें इस तरह दिखती हैं:

/headfolder/subfolder/subfile.pdf     #ignore this directory
/headfolder/subfolder2/subfile.pdf    #ignore this directory
/headfolder/file.pdf                  #get this path 
/headfolder/file2.pdf                 #get this path  

वांछित आउटपुट:

['/headfolder/file.pdf','/headfolder/file2.pdf ']
0
blah 24 मार्च 2021, 15:06

1 उत्तर

सबसे बढ़िया उत्तर
files=[i for i in os.listdir() if os.path.isfile(i)]

संपादित करें:

सभी फाइलों को विशिष्ट निर्देशिका में सूचीबद्ध करने के लिए

import os
from os import listdir
from os.path import isfile, join

input_folder = 'headfolder/'
list_files = []

files = [f for f in listdir(input_folder) if isfile(join(input_folder, f))]
for filename in files:
    joined = os.path.join(input_folder, filename)
    list_files.append(joined)

print(list_files)
1
Sina kzlca 24 मार्च 2021, 15:29
मुझे एक विशिष्ट निर्देशिका होने के लिए इनपुट की आवश्यकता है, वर्तमान निर्देशिका नहीं। अगर मैं os.listdir(input_folder) करता हूं, तो मुझे आउटपुट के रूप में एक खाली सूची मिलती है।
 – 
blah
24 मार्च 2021, 15:20
संपादन वही है जो मैं ढूंढ रहा था, धन्यवाद!
 – 
blah
24 मार्च 2021, 15:40