Cách rõ ràng nhất để làm điều này là in vào đối tượng tệp: Show
Tuy nhiên, việc chuyển hướng stdout cũng hoạt động cho tôi. Nó có lẽ là tốt cho một tập lệnh một lần như thế này:
Vì Python 3.4, có một trình quản lý bối cảnh đơn giản có sẵn để thực hiện việc này trong thư viện tiêu chuẩn:
Chuyển hướng ra bên ngoài từ bản thân vỏ là một tùy chọn khác và thường thích hợp hơn:
Các câu hỏi khác: Tên tệp đầu tiên trong tập lệnh của bạn là gì? Tôi không thấy nó được khởi tạo. Dự đoán đầu tiên của tôi là Glob không tìm thấy bất kỳ bamfiles nào, và do đó, vòng lặp cho vòng không chạy. Kiểm tra xem thư mục có tồn tại không và in ra BamFiles trong tập lệnh của bạn. Ngoài ra, sử dụng Os.Path.Join và Os.Path.Basename để thao túng các đường dẫn và tên tệp.
mkrieger1 Huy hiệu vàng 16K449 Huy hiệu bạc57 Huy hiệu đồng4 gold badges49 silver badges57 bronze badges Đã trả lời ngày 22 tháng 8 năm 2011 lúc 20:00Aug 22, 2011 at 20:00
Gringo Suavegringo SuaveGringo Suave 28.5K6 Huy hiệu vàng84 Huy hiệu bạc74 Huy hiệu đồng6 gold badges84 silver badges74 bronze badges 12 Bạn có thể chuyển hướng in với đối số 7 (trong Python 2 có toán tử 8 thay thế).
Trong hầu hết các trường hợp, tốt hơn hết là bạn nên viết vào tệp bình thường.
Hoặc, nếu bạn có một số mục bạn muốn viết với khoảng trống giữa, như 9:
mkrieger1 Huy hiệu vàng 16K449 Huy hiệu bạc57 Huy hiệu đồng4 gold badges49 silver badges57 bronze badges Đã trả lời ngày 22 tháng 8 năm 2011 lúc 20:00Aug 22, 2011 at 19:56
3 Gringo Suavegringo Suave 0 Bạn có thể chuyển hướng in với đối số 7 (trong Python 2 có toán tử 8 thay thế).f = open(filename,'w') print('whatever', file=f) # Python 3.x print >>f, 'whatever' # Python 2.x
Trong hầu hết các trường hợp, tốt hơn hết là bạn nên viết vào tệp bình thường.
mkrieger1 Huy hiệu vàng 16K449 Huy hiệu bạc57 Huy hiệu đồng4 gold badges49 silver badges57 bronze badges Đã trả lời ngày 22 tháng 8 năm 2011 lúc 20:00Jul 4, 2016 at 13:45
Gringo Suavegringo SuaveYeo 28.5K6 Huy hiệu vàng84 Huy hiệu bạc74 Huy hiệu đồng6 gold badges62 silver badges89 bronze badges 2 Bạn có thể chuyển hướng in với đối số 7 (trong Python 2 có toán tử 8 thay thế).
Trong hầu hết các trường hợp, tốt hơn hết là bạn nên viết vào tệp bình thường. Hoặc, nếu bạn có một số mục bạn muốn viết với khoảng trống giữa, như mkrieger1Jun 30, 2015 at 12:15
1 Đã trả lời ngày 22 tháng 8 năm 2011 lúc 19:56Python 2 hoặc Python 3 Tham khảo API: Đối số tệp phải là một đối tượng với phương thức 1; Nếu nó không có mặt hoặc 2, 3 sẽ được sử dụng. Vì các đối số in được chuyển đổi thành chuỗi văn bản, 4 không thể được sử dụng với các đối tượng tệp chế độ nhị phân. Đối với những điều này, hãy sử dụng 5 thay thế.Vì đối tượng tệp thường chứa phương thức f = open(filename,'w') print('whatever', file=f) # Python 3.x print >>f, 'whatever' # Python 2.x 6, tất cả những gì bạn cần làm là chuyển một đối tượng tệp vào đối số của nó.Viết/ghi đè lên tệp 0Viết/nối vào tệp 1Đã trả lời ngày 4 tháng 7 năm 2016 lúc 13:45 2Yeoyeo 310,9k6 huy hiệu vàng62 Huy hiệu bạc89 Huy hiệu đồng Điều này hoạt động hoàn hảo:Jan 1, 2018 at 20:54
Bây giờ Hello sẽ được ghi vào tệp Test.txt. Đảm bảo đóng 7 bằng 8, mà không có nội dung sẽ không được lưu trong tệpjpyamsAndy k7 gold badges35 silver badges61 bronze badges 2 4.80210 Huy hiệu vàng48 Huy hiệu bạc80 Huy hiệu đồng 4Đã trả lời ngày 30 tháng 6 năm 2015 lúc 12:15 5Không sử dụng 9, sử dụng 0Bạn có thể thay đổi 3 để trỏ đến một tệp, nhưng đây là một cách khá cồng kềnh và không linh hoạt để xử lý vấn đề này. Thay vì sử dụng 9, hãy sử dụng mô -đun 0.Với 0, bạn có thể in giống như bạn làm 7 hoặc bạn cũng có thể viết đầu ra vào một tệp. Bạn thậm chí có thể sử dụng các cấp tin nhắn khác nhau ( 6, 7, 8, 9, 0), ví dụ, chỉ in các vấn đề lớn vào bảng điều khiển, nhưng vẫn đăng nhập các hành động mã nhỏ vào tệp.Một ví dụ đơn giản
Nhập 0, nhận 2 và đặt mức xử lý:Aug 22, 2011 at 20:24
Nếu bạn muốn in vào stdout:Aaron Dufour Nếu bạn cũng muốn ghi vào một tệp (nếu bạn chỉ muốn ghi vào tệp, hãy bỏ qua phần cuối cùng):1 gold badge48 silver badges68 bronze badges 3 Sau đó, bất cứ nơi nào bạn sẽ sử dụng 9 Sử dụng một trong các phương pháp 2: 6Để tìm hiểu thêm về việc sử dụng các tính năng 0 nâng cao hơn, hãy đọc hướng dẫn 0 xuất sắc trong các tài liệu Python.
Đã trả lời ngày 1 tháng 1 năm 2018 lúc 20:54 jpyamsjpyams27 gold badges250 silver badges298 bronze badges 3.6557 Huy hiệu vàng35 Huy hiệu bạc61 Huy hiệu ĐồngJan 23, 2018 at 15:51
Giải pháp dễ nhất không phải là thông qua Python; Nó thông qua vỏ. Từ dòng đầu tiên của tệp của bạn ( 7) Tôi đoán bạn đang ở trên một hệ thống Unix. Chỉ cần sử dụng các câu lệnh 9 như bạn thường làm và không mở tệp trong tập lệnh của bạn. Khi bạn đi chạy tập tin, thay vìyunusĐể chạy tệp, sử dụng1 gold badge14 silver badges12 bronze badges 0 Bạn có thể không thích câu trả lời này, nhưng tôi nghĩ đó là đúng. Đừng thay đổi điểm đến stdout của bạn trừ khi nó hoàn toàn cần thiết (có thể bạn đang sử dụng thư viện chỉ xuất ra stdout ??? rõ ràng không phải là trường hợp ở đây). Tôi nghĩ như một thói quen tốt, bạn nên chuẩn bị dữ liệu của mình trước thời hạn như một chuỗi, sau đó mở tập tin của bạn và viết toàn bộ mọi thứ cùng một lúc. Điều này là do các hoạt động đầu vào/đầu ra là bạn có khả năng xử lý tệp dài hơn, càng có nhiều lỗi xảy ra với tệp này (lỗi khóa tệp, lỗi I/O, v.v.). Chỉ cần thực hiện tất cả trong một hoạt động mà không còn câu hỏi nào khi nó có thể sai. Đây là một ví dụ: 7Và sau đó, khi bạn hoàn thành việc thu thập "dòng dữ liệu" của mình cho mỗi mục danh sách, bạn có thể tham gia cùng họ với một số ký tự 5 để tạo ra toàn bộ điều có thể xuất hiện; Thậm chí có thể bọc câu lệnh đầu ra của bạn trong khối 6, để có thêm sự an toàn (sẽ tự động đóng tay cầm đầu ra của bạn ngay cả khi có sự cố xảy ra): 8Tuy nhiên, nếu bạn có rất nhiều dữ liệu để viết, bạn có thể viết nó từng lần một. Tôi không nghĩ rằng nó có liên quan đến ứng dụng của bạn nhưng đây là sự thay thế:could write it one piece at a time. I don't think it's relevant to your application but here's the alternative: 9Đã trả lời ngày 22 tháng 8 năm 2011 lúc 20:20Aug 22, 2011 at 20:20
Machine khao khát khao khátmachine yearning 9,5215 huy hiệu vàng36 Huy hiệu bạc51 Huy hiệu đồng5 gold badges36 silver badges51 bronze badges 8 Nếu chuyển hướng 7 hoạt động cho vấn đề của bạn, câu trả lời của Gringo Suave là một minh chứng tốt cho cách thực hiện.Để làm cho nó trở nên dễ dàng hơn, tôi đã tạo một phiên bản sử dụng BusterManagers cho một cú pháp gọi tổng quát ngắn gọn bằng cách sử dụng câu lệnh 6: 0Để sử dụng nó, bạn chỉ cần làm như sau (bắt nguồn từ ví dụ của Suave): 1Nó hữu ích cho việc chuyển hướng chọn lọc 9 khi một mô -đun sử dụng nó theo cách bạn không thích. Nhược điểm duy nhất (và đây là Dealbreaker cho nhiều tình huống) là nó không hoạt động nếu người ta muốn nhiều luồng có các giá trị khác nhau của 7, nhưng điều đó đòi hỏi một phương pháp tốt hơn, tổng quát hơn: truy cập mô -đun gián tiếp. Bạn có thể thấy việc thực hiện điều đó trong các câu trả lời khác cho câu hỏi này.Đã trả lời ngày 6 tháng 1 năm 2019 lúc 4:48Jan 6, 2019 at 4:48
GrahamgrahamGraham 2.5553 Huy hiệu vàng15 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges15 silver badges30 bronze badges 2 Đây là một phương thức khác mà tôi đã sử dụng để in vào tệp/nhật ký ... Sửa đổi chức năng in tích hợp để nó đăng nhập vào một tệp trong thư mục temp với dấu thời gian hiện tại, cũng như in vào stdout. Lợi thế thực sự duy nhất để làm điều này trong một tập lệnh là không phải đi và sửa đổi các câu lệnh in hiện có. 2 3Sao chép chức năng in gốc vào biến mới 4 5Ghi đè chức năng in hiện có 6 7 8Hiển thị tệp 9 0Xóa tệp 1Đã trả lời ngày 25 tháng 1 lúc 15:28Jan 25 at 15:28
TCB919TCB919TCB919 Phù hiệu đồng 12366 bronze badges Tôi có thể bẻ khóa điều này bằng phương pháp sau. Nó sẽ sử dụng chức năng in này thay vì chức năng in tích hợp và lưu nội dung vào một tệp. 2Đã trả lời ngày 18 tháng 9 năm 2021 lúc 19:51Sep 18, 2021 at 19:51
Arjun g perambraarjun g perambraArjun G Perambra 1.9991 Huy hiệu vàng17 Huy hiệu bạc17 Huy hiệu đồng1 gold badge17 silver badges17 bronze badges 2 Thay đổi giá trị của sys.stdout không thay đổi điểm đến của tất cả các cuộc gọi để in. Nếu bạn sử dụng một cách khác để thay đổi điểm đến của in, bạn sẽ nhận được kết quả tương tự. Lỗi của bạn ở một nơi khác:
Đã trả lời ngày 22 tháng 8 năm 2011 lúc 20:05Aug 22, 2011 at 20:05
JeromejeromeJerome 2.32114 Huy hiệu bạc24 Huy hiệu đồng14 silver badges24 bronze badges Trong Python 3, bạn có thể chỉ định lại 9: 3Lưu ý rằng bản in từ 2 chỉ chuyển đổi đầu ra vì in đang được gán lại trong phạm vi toàn cầu. Nếu chúng ta gán bản in trong một hàm, bản in trong 2 thường không bị ảnh hưởng. Chúng ta có thể sử dụng từ khóa toàn cầu nếu chúng ta muốn ảnh hưởng đến tất cả các cuộc gọi in: 4Cá nhân, tôi thích Sidestepping yêu cầu sử dụng chức năng 9 bằng cách nướng bộ mô tả tệp đầu ra vào một hàm mới: 5Đã trả lời ngày 8 tháng 12 năm 2020 lúc 19:04Dec 8, 2020 at 19:04
ShawnshawnShawn 6115 Huy hiệu bạc10 Huy hiệu đồng5 silver badges10 bronze badges Một cái gì đó để mở rộng chức năng in cho các vòng lặp 6Đã trả lời ngày 16 tháng 7 năm 2017 lúc 19:34Jul 16, 2017 at 19:34
1 Làm cách nào để chuyển hướng đầu ra in vào một tệp trong Python?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 in () 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 stdout của mô -đun SYS.using the stdout object of the sys module.
Làm cách nào để lưu đầu ra python vào tệp?Để tạo và ghi vào một tệp mới, hãy sử dụng mở với tùy chọn W W W.Tùy chọn W W W sẽ xóa bất kỳ tệp hiện có nào trước đây và tạo một tệp mới để viết.Nếu bạn muốn nối vào một tệp hiện có, thì hãy sử dụng câu lệnh Open với tùy chọn của A A.Trong chế độ Phụ lục, Python sẽ tạo tệp nếu nó không tồn tại.use open with “w” option. The “w” option will delete any previous existing file and create a new file to write. If you want to append to an existing file, then use open statement with “a” option. In append mode, Python will create the file if it does not exist.
Làm cách nào để lưu đầu ra dưới dạng văn bản trong Python?Để ghi vào tệp văn bản bằng Python, bạn làm theo các bước sau: Đầu tiên, hãy mở tệp văn bản để ghi (hoặc nối) bằng hàm Open ()..Third, Đóng tệp bằng phương thức đóng ().open the text file for writing (or append) using the open() function. Second, write to the text file using the write() or writelines() method. Third, close the file using the close() method.
Làm thế nào để bạn gán đầu ra in cho một biến trong Python?Để gán đầu ra của hàm in () cho một biến: Xóa cuộc gọi cho hàm và gán đối số bạn đã chuyển để in () cho biến.Hàm in () chuyển đổi giá trị được cung cấp thành một chuỗi, in nó thành sys.Stdout và trả về không.Remove the call to the function and assign the argument you passed to print() to the variable. The print() function converts the provided value to a string, prints it to sys. stdout and returns None . |