2011-11-10 24 views
55

Tôi đã tìm kiếm và tôi chỉ có thể tìm câu hỏi về cách khác xung quanh: viết stdin vào tệp :)Python: in một tệp để stdout

Có cách nhanh chóng và dễ dàng để kết xuất nội dung của tập tin để stdout?

Trả lời

78

Chắc chắn. Giả sử bạn có một chuỗi với tên của tập tin được gọi là fname, sau đây không phải là lừa.

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

Lưu ý rằng điều này sẽ thêm một newline thêm ở phần cuối của đầu ra. –

+6

Đối với cả Python 3 tương thích _and_ tránh dấu dòng mới, dòng cuối cùng có lẽ nên đọc: 'print (fin.read(), end =" ")'. Để tận dụng giải pháp đó trong Python 2, cần có tiền tố 'từ __future__ import print_function'. Tất nhiên, các ứng dụng Python 2 nên _always_ sử dụng hàm Python 3 'print()' - vì vậy không phải là một gánh nặng lớn. –

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

Từ http://docs.python.org/tutorial/inputoutput.html

Để đọc nội dung của một tập tin, gọi f.read (size), mà đọc một số lượng dữ liệu và trả về nó như là một chuỗi. kích thước là một đối số số tùy chọn. Khi kích thước bị bỏ qua hoặc phủ định, toàn bộ nội dung của tệp sẽ được đọc và trả về; đó là vấn đề của bạn nếu tệp lớn gấp đôi bộ nhớ máy của bạn. Nếu không, tại hầu hết các byte kích thước sẽ được đọc và trả về. Nếu đã kết thúc tập tin, f.read() sẽ trả về một chuỗi rỗng ("").

30

Nếu đó là một tập tin lớn và bạn không muốn tiêu tốn một tấn của bộ nhớ như có thể xảy ra với các giải pháp của Ben, mã thêm trong

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

cũng làm việc.

0

Bạn có thể thử điều này.

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

Điều này sẽ cung cấp cho bạn đầu ra tệp.

2

bạn cũng có thể thử

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

1

phiên bản ngắn gọn của tôi trong Python3

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

Hoạt động nhờ hoàn hảo – MDMoore313

Các vấn đề liên quan