পাইথন: stdout এ একটি ফাইল মুদ্রণ


89

আমি অনুসন্ধান করেছি এবং আমি প্রায় অন্যান্য উপায় সম্পর্কে প্রশ্নগুলি জানতে পারি: একটি ফাইলে স্ট্ডিন লেখার :)

স্টডআউটে কোনও ফাইলের বিষয়বস্তু ফেলে দেওয়ার কি দ্রুত এবং সহজ উপায় আছে?

উত্তর:


122

অবশ্যই ধরে নেওয়া আপনার ফাইলটির নামের সাথে একটি স্ট্রিং রয়েছে fname, নিম্নলিখিতটি কৌশলটি করে।

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

8
দ্রষ্টব্য যে এটি আউটপুট শেষে একটি অতিরিক্ত নতুন লাইন যুক্ত করবে।
ডিএ

13
উভয় পাইথন 3 সামঞ্জস্যের জন্য এবং trailing সম্পর্কে newline এড়ানো, গত লাইন সম্ভবত পড়া উচিত: 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 (আকার) কল করুন, যা কিছু পরিমাণে ডেটা পড়ে এবং স্ট্রিং হিসাবে এটি প্রদান করে। আকার একটি alচ্ছিক সংখ্যাসূচক যুক্তি। যখন আকার বাদ দেওয়া বা নেতিবাচক হয়, তখন ফাইলটির সম্পূর্ণ সামগ্রীগুলি পড়ে আবার ফিরে আসবে; ফাইলটি আপনার মেশিনের স্মৃতি থেকে দ্বিগুণ বড় হলে এটি আপনার সমস্যা। অন্যথায়, সর্বাধিক আকারের বাইটগুলি পড়ে এবং ফিরে আসে। যদি ফাইলটির শেষে পৌঁছে যায়, f.read () খালি স্ট্রিং ("") ফিরিয়ে দেবে।




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

পাইথন -৩ এর সাথে @ বিজিপিটারের উত্তরের উন্নতি করতে আপনি সম্ভবত অযৌক্তিকভাবে জিনিসগুলিকে utf-8 এ রূপান্তরিত করার পরিবর্তে বাইটগুলি পরিচালনা করতে চান:

>>> import shutil
>>> import sys
>>> with open("test.txt", "rb") as f:
...    shutil.copyfileobj(f, sys.stdout.buffer)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.