Tôi đang cố gắng để Python in nội dung của một tệp:
log = open["/path/to/my/file.txt", "r"]
print str[log]
Cung cấp cho tôi đầu ra:
Thay vì in tệp. Tệp chỉ có một chuỗi văn bản ngắn trong đó và khi tôi thực hiện ngược lại [viết user_input từ tập lệnh python của tôi sang cùng một tệp], nó hoạt động đúng.
EDIT: Tôi thấy Python nghĩ gì khi tôi hỏi nó, tôi chỉ tự hỏi lệnh in một cái gì đó từ bên trong một tập tin là gì.
Hỏi ngày 17 tháng 8 năm 2013 lúc 17:57Aug 17, 2013 at 17:57
3
Tốt hơn là xử lý việc này với "với" để tự động đóng mô tả cho bạn. Điều này sẽ hoạt động với cả 2.7 và Python 3.
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
Đã trả lời ngày 17 tháng 8 năm 2013 lúc 18:27Aug 17, 2013 at 18:27
László Papplászló PappLászló Papp
50.6K39 Huy hiệu vàng108 Huy hiệu bạc135 Huy hiệu đồng39 gold badges108 silver badges135 bronze badges
1
8 cung cấp cho bạn một trình lặp không tự động tải toàn bộ tệp cùng một lúc. Nó lặp lại từng dòng để bạn có thể viết một vòng lặp như vậy:for line in log:
print[line]
Nếu tất cả những gì bạn muốn làm là in nội dung của tệp lên màn hình, bạn có thể sử dụng
9Đã trả lời ngày 17 tháng 8 năm 2013 lúc 18:00Aug 17, 2013 at 18:00
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
0 thực sự sẽ mở một đối tượng tệp để bạn đọc. Nếu ý định của bạn là đọc nội dung đầy đủ của tệp vào biến nhật ký thì bạn nên sử dụng with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
1log = open["/path/to/my/file.txt", "r"].read[]
print log
Sẽ in ra nội dung của tệp.
Đã trả lời ngày 17 tháng 8 năm 2013 lúc 18:33Aug 17, 2013 at 18:33
OlioliOli
5514 Huy hiệu bạc10 Huy hiệu đồng4 silver badges10 bronze badges
file_o=open["/path/to/my/file.txt"] //creates an object file_o to access the file
content=file_o.read[] //file is read using the created object
print[content] //print-out the contents of file
file_o.close[]
Đã trả lời ngày 17 tháng 8 năm 2013 lúc 19:26Aug 17, 2013 at 19:26
rogue_leaderrogue_leaderrogue_leader
6061 Huy hiệu vàng6 Huy hiệu bạc18 Huy hiệu đồng1 gold badge6 silver badges18 bronze badges
Giới thiệu
Hàm
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 của Python thường được sử dụng để hiển thị văn bản trong dòng lệnh hoặc trong trình thông dịch tương tác, tùy thuộc vào cách thực thi chương trình Python. Tuy nhiên, chúng ta có thể thay đổi hành vi của nó để viết văn bản vào một tệp thay vì vào bảng điều khiển.Trong bài viết này, chúng tôi sẽ kiểm tra nhiều cách chúng tôi có thể viết vào một tệp với chức năng
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2.Chuyển hướng đầu ra kịch bản của Python trong thiết bị đầu cuối
Cách nhanh chóng và bẩn để chuyển hướng đầu ra của tập lệnh Python trực tiếp từ dòng lệnh trong khi thực thi tập lệnh.
Ví dụ: nếu chúng ta có một tệp python có tên
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
4 với các nội dung sau:print["Hallo"] # Deliberately in German
Chúng ta có thể chuyển hướng đầu ra của tệp trong shell bằng một khung góc phải duy nhất:
$ python3 hello.py > output.txt
Nếu chúng tôi mở
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
5 mới được tạo, chúng tôi sẽ thấy các nội dung sau:Hallo
Tuy nhiên, với phương thức này, tất cả đầu ra của tập lệnh được ghi vào một tệp. Nó thường linh hoạt hơn khi thực hiện chuyển hướng này từ trong chính tập lệnh Python.
Chuyển hướng luồng đầu ra tiêu chuẩn
Trong Python, hàm
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 linh hoạt hơn bạn nghĩ. Nó không được mã hóa cứng theo cách mà văn bản được chỉ định chỉ có thể được ghi vào màn hình. Thay vào đó, nó gửi văn bản đến một vị trí gọi là luồng đầu ra tiêu chuẩn, còn được gọi là with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7.Tất cả các hệ thống UNIX có ba ống chính - ống đầu vào tiêu chuẩn [
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
8], ống đầu ra tiêu chuẩn [with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7] và ống lỗi tiêu chuẩn [for line in log:
print[line]
0].Theo mặc định, đường ống đầu ra tiêu chuẩn chỉ vào cửa sổ tương tác được sử dụng để thực hiện chương trình, vì vậy chúng ta thường thấy văn bản được in trên màn hình. Tuy nhiên, đầu ra tiêu chuẩn có thể được chuyển hướng đến các vị trí khác, chẳng hạn như các tệp, để thuận tiện.
Nếu đầu ra tiêu chuẩn được chuyển hướng đến một tệp cụ thể, văn bản được chỉ định trong hàm
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 sẽ được ghi vào tệp đó thay vì được hiển thị trên màn hình.Trong Python, một tham chiếu đến đầu ra tiêu chuẩn có thể thu được bằng cách sử dụng đối tượng
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7 của mô -đun for line in log:
print[line]
3. Nó là một đối tượng giống như tệp, có nghĩa là nó có các phương thức cho phép Python đọc và ghi từ nó giống như một tệp thực tế.Hãy xem một ví dụ trong đó chúng ta thay đổi
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7 thành một tệp:import sys
print['This message will be displayed on the screen.']
original_stdout = sys.stdout # Save a reference to the original standard output
with open['filename.txt', 'w'] as f:
sys.stdout = f # Change the standard output to the file we created.
print['This message will be written to a file.']
sys.stdout = original_stdout # Reset the standard output to its original value
Hàm
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 lấy đối số chuỗi được cung cấp, nối thêm một ký tự dòng mới đến cuối và gọi phương thức for line in log:
print[line]
6 để ghi nó vào đầu ra tiêu chuẩn.Trong ví dụ trên, trước tiên chúng tôi in một dòng văn bản khi chúng tôi đã quen, sẽ được hiển thị trong bảng điều khiển khi chúng tôi chạy tệp. Sau đó, chúng tôi đã chỉ định lại
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7 cho đối tượng tệp tùy chỉnh của chúng tôi - for line in log:
print[line]
8. Vì một đối tượng tệp có phương thức for line in log:
print[line]
9 hoàn toàn hợp lệ, giá trị in của chúng tôi được ghi vào tệp mà không gặp sự cố.Lưu ý rằng đó là cách thực hành tốt để lưu trữ giá trị ban đầu của đầu ra tiêu chuẩn trong một biến trước khi thay đổi nó. Bằng cách này, chúng tôi có thể đặt lại đầu ra tiêu chuẩn về giá trị ban đầu của nó sau khi chúng tôi hoàn thành, điều này có thể giúp tránh sự nhầm lẫn.
Hãy lưu mã vào một tệp mới,
log = open["/path/to/my/file.txt", "r"].read[]
print log
0. Và sau đó, hãy thực hiện nó:
0Chúng ta sẽ thấy đầu ra sau trong thiết bị đầu cuối:
1Và tập lệnh sẽ tạo một tệp mới có tên
log = open["/path/to/my/file.txt", "r"].read[]
print log
1 với các nội dung sau:Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!
2Bạn chuyển hướng thành công dữ liệu từ luồng đầu ra tiêu chuẩn sang một tệp. Hãy xem làm thế nào chúng ta có thể làm điều này với một đối tượng giống như tệp phổ biến khác dành riêng cho các lỗi lập trình.
Chuyển hướng luồng lỗi tiêu chuẩn
Trong Python, các lỗi được ghi vào luồng lỗi tiêu chuẩn, còn được gọi là
for line in log:
print[line]
0. Điều này cũng mặc định vào cửa sổ tương tác nhưng có thể được thay đổi thông qua đối tượng log = open["/path/to/my/file.txt", "r"].read[]
print log
3. Nếu chúng tôi muốn in các giá trị vào for line in log:
print[line]
0, chúng tôi chỉ có thể chuyển hướng log = open["/path/to/my/file.txt", "r"].read[]
print log
5 để trỏ đến log = open["/path/to/my/file.txt", "r"].read[]
print log
3.Tạo một tệp có tên
log = open["/path/to/my/file.txt", "r"].read[]
print log
7 và thêm mã sau:
3Ví dụ này gần như giống hệt với cái trước, ngoại trừ thay vì chuyển hướng luồng đầu ra tiêu chuẩn đến một tệp, chúng tôi chuyển hướng nó sang luồng lỗi tiêu chuẩn. Nếu luồng lỗi tiêu chuẩn cũng được chuyển hướng ở một nơi khác, đầu ra sẽ được gửi đến vị trí đó thay vì đến màn hình.
Hãy chạy tệp này:
4Đầu ra của chúng tôi sẽ hiển thị:
5Mặc dù nó có thể xuất hiện giống như đầu ra thông thường đối với chúng tôi, nhưng đối với máy tính, nó được hiển thị thông qua các đường ống khác nhau.
In bằng tham số "Tệp"
Trong các ví dụ trước, chúng tôi chuyển hướng rõ ràng đầu ra tiêu chuẩn sang đối tượng giống như tệp khác bằng cách thay đổi đối tượng
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7. Tuy nhiên, để thuận tiện, chúng ta có thể thực hiện điều này trực tiếp từ trong hàm with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 bằng cách chỉ định vị trí đầu ra với tham số file_o=open["/path/to/my/file.txt"] //creates an object file_o to access the file
content=file_o.read[] //file is read using the created object
print[content] //print-out the contents of file
file_o.close[]
0:Ví dụ: nếu chúng tôi muốn in trực tiếp vào một tệp mà không thay đổi toàn bộ tập lệnh
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
7, chúng tôi sẽ viết:
6Vì chúng tôi không fiddle với việc chuyển hướng đầu ra tiêu chuẩn một cách rõ ràng, chúng tôi không còn phải đặt lại nó về giá trị ban đầu của nó. Kết quả là, đây là cách ưa thích để ghi vào một tệp với chức năng
with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2.Lưu ý: Mặc dù tên của tham số là
0, hãy nhớ rằng nó hoạt động với bất kỳ đối tượng giống như tệp nào. Ví dụ, nếu bạn muốn in lên file_o=open["/path/to/my/file.txt"] //creates an object file_o to access the file
content=file_o.read[] //file is read using the created object
print[content] //print-out the contents of file
file_o.close[]
0, bạn sẽ thay đổi câu lệnh for line in log:
print[line]
2 thành: Although the
parameter's name is with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
file_o=open["/path/to/my/file.txt"] //creates an object file_o to access the file
content=file_o.read[] //file is read using the created object
print[content] //print-out the contents of file
file_o.close[]
0, remember that it works with any file-like object. If you wanted to print to for line in log:
print[line]
0, for example, you would change the with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2 statement to:
7Sự kết luận
Trong bài viết này, chúng tôi đã thảo luận về việc chuyển hướng đầu ra chức năng ____22 của Python bằng các phương pháp khác nhau. Các phương pháp này bao gồm chuyển hướng đầu ra của tập lệnh Python từ dòng lệnh, chuyển hướng đầu ra tiêu chuẩn trong các tập lệnh Python và chỉ định một đối tượng giống như tệp trong tham số
file_o=open["/path/to/my/file.txt"] //creates an object file_o to access the file
content=file_o.read[] //file is read using the created object
print[content] //print-out the contents of file
file_o.close[]
0 trực tiếp trong hàm with open['/path/to/my/file.txt', 'r'] as f:
print[f.read[]]
2.Bài viết này được viết bởi Jacob Stopak, một nhà phát triển phần mềm và tư vấn với niềm đam mê giúp đỡ người khác cải thiện cuộc sống của họ thông qua mã. Jacob là tác giả của Sách hướng dẫn Coding Essentials cho các nhà phát triển, một cuốn sách giới thiệu bao gồm các khái niệm và công cụ mã hóa thiết yếu. Nó chứa các chương về kiến trúc máy tính cơ bản, Internet, dòng lệnh, HTML, CSS, JavaScript, Python, Java, cơ sở dữ liệu/SQL, Git, v.v.