पायथन: एक फाइल को स्टडआउट में प्रिंट करना


89

मैंने खोज की है और मैं केवल आसपास के अन्य तरीके के बारे में प्रश्न पा सकता हूं: एक फ़ाइल पर स्टिंग लिखना :)

वहाँ एक त्वरित और आसान तरीका है फ़ाइल की सामग्री को डंप करने के लिए डंप करना है?

जवाबों:


122

ज़रूर। मान लें कि आपके पास फ़ाइल के नाम के साथ एक स्ट्रिंग है fname, तो निम्नलिखित चाल करता है।

with open(fname, 'r') as fin:
    print(fin.read())

8
ध्यान दें कि यह आउटपुट के अंत में एक अतिरिक्त नई पंक्ति जोड़ देगा।
— DA

13
पायथन 3 संगतता के लिए और अनुगामी न्यूलाइन से बचने के लिए, अंतिम पंक्ति शायद पढ़नी चाहिए print(fin.read(), end=""):। पायथन 2 के तहत उस समाधान का लाभ उठाने के लिए, एक उपसर्ग from __future__ import print_functionकी आवश्यकता होगी। बेशक, पायथन 2 एप्लिकेशन को वैसे भी हमेशा पायथन 3 print()फ़ंक्शन का उपयोग करना चाहिए - ताकि कोई बोझ न हो।
— सेसिल करी

42

यदि यह एक बड़ी फाइल है और आप एक टन मेमोरी का उपभोग नहीं करना चाहते हैं तो बेन के समाधान के साथ हो सकता है, अतिरिक्त कोड

>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
...    shutil.copyfileobj(f, sys.stdout)

भी काम करता है।


18
f = open('file.txt', 'r')
print f.read()
f.close()

से http://docs.python.org/tutorial/inputoutput.html

किसी फ़ाइल की सामग्री को पढ़ने के लिए, f.read (आकार) को कॉल करें, जो कुछ मात्रा में डेटा पढ़ता है और इसे एक स्ट्रिंग के रूप में लौटाता है। आकार एक वैकल्पिक संख्यात्मक तर्क है। जब आकार छोड़ा जाता है या नकारात्मक होता है, तो फ़ाइल की पूरी सामग्री को पढ़ा और वापस कर दिया जाएगा; यदि आपकी मशीन आपकी मेमोरी से दोगुनी है तो यह आपकी समस्या है। अन्यथा, अधिकांश आकार के बाइट्स पढ़े जाते हैं और वापस आ जाते हैं। यदि फ़ाइल का अंत हो गया है, तो f.read () एक खाली स्ट्रिंग ("") लौटा देगा।


7

पायथन 3 में मेरा छोटा संस्करण

print(open('file.txt').read())

2
नोट: यह फ़ाइल बंद नहीं करता है।
— बेन

3

आप भी इसे आजमा सकते हैं

print ''.join(file('example.txt'))


0

आप यह कोशिश कर सकते हैं।

txt = <file_path>
txt_opn = open(txt)
print txt_opn.read()

यह आपको फ़ाइल आउटपुट देगा।


0

यदि आपको pathlibमॉड्यूल के साथ ऐसा करने की आवश्यकता है , तो आप pathlib.Path.open()फ़ाइल को खोलने और पाठ को प्रिंट करने के लिए उपयोग कर सकते हैं read():

from pathlib import Path

fpath = Path("somefile.txt")

with fpath.open() as f:
    print(f.read())

या बस फोन pathlib.Path.read_text():

from pathlib import Path

fpath = Path("somefile.txt")

print(fpath.read_text())

0

@ Bgporter के जवाब में सुधार करने के लिए, पायथन -3 के साथ आप संभवतः बाइट्स पर काम करना चाहेंगे बजाय बेकार चीजों को utf-8 में बदलने के लिए:

>>> import shutil
>>> import sys
>>> with open("test.txt", "rb") as f:
...    shutil.copyfileobj(f, sys.stdout.buffer)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.