sth सही है । आप os.popen () का उपयोग भी कर सकते हैं, लेकिन जहां उपलब्ध (पायथन 2.4+) उपप्रकार आमतौर पर बेहतर होता है।
हालांकि, कुछ भाषाओं के विपरीत, जो इसे प्रोत्साहित करती हैं, यह आमतौर पर एक उपप्रकार को फैलाने के लिए बुरा रूप माना जाता है जहां आप भाषा के अंदर एक ही काम कर सकते हैं। यह धीमा, कम विश्वसनीय और प्लेटफ़ॉर्म-निर्भर है। आपका उदाहरण बेहतर होगा:
foo= open('/tmp/baz').read()
ईटा:
baz एक निर्देशिका है और मैं उस निर्देशिका की सभी फ़ाइलों की सामग्री प्राप्त करने का प्रयास कर रहा हूं
? एक निर्देशिका पर बिल्ली मुझे एक त्रुटि मिलती है।
यदि आप फ़ाइलों की सूची चाहते हैं:
import os
foo= os.listdir('/tmp/baz')
यदि आप एक निर्देशिका में सभी फ़ाइलों की सामग्री चाहते हैं, तो कुछ इस तरह है:
contents= []
for leaf in os.listdir('/tmp/baz'):
path= os.path.join('/tmp/baz', leaf)
if os.path.isfile(path):
contents.append(open(path, 'rb').read())
foo= ''.join(contents)
या, यदि आप सुनिश्चित कर सकते हैं कि वहां कोई निर्देशिका नहीं है, तो आप इसे एक-लाइनर में फिट कर सकते हैं:
path= '/tmp/baz'
foo= ''.join(open(os.path.join(path, child), 'rb').read() for child in os.listdir(path))