Tôi mới bắt đầu với Python. Khi tôi thực thi tệp kịch bản python trên Windows, cửa sổ đầu ra xuất hiện nhưng ngay lập tức biến mất. Tôi cần nó ở lại đó để tôi có thể phân tích đầu ra của tôi. Làm thế nào tôi có thể giữ cho nó mở?
Tôi mới bắt đầu với Python. Khi tôi thực thi tệp kịch bản python trên Windows, cửa sổ đầu ra xuất hiện nhưng ngay lập tức biến mất. Tôi cần nó ở lại đó để tôi có thể phân tích đầu ra của tôi. Làm thế nào tôi có thể giữ cho nó mở?
Câu trả lời:
Bạn có một vài lựa chọn:
Chạy chương trình từ một thiết bị đầu cuối đã mở. Mở một dấu nhắc lệnh và gõ:
python myscript.py
Để làm việc đó, bạn cần python thực thi trong đường dẫn của bạn. Chỉ cần kiểm tra cách chỉnh sửa các biến môi trường trên Windows và thêm C:\PYTHON26
(hoặc bất kỳ thư mục nào bạn đã cài đặt python vào).
Khi chương trình kết thúc, nó sẽ đưa bạn trở lại dấu nhắc cmd thay vì đóng cửa sổ.
Thêm mã để chờ ở cuối tập lệnh của bạn. Đối với Python2, thêm ...
raw_input()
... ở cuối đoạn script làm cho nó chờ Enterkhóa. Phương pháp đó gây khó chịu vì bạn phải sửa đổi tập lệnh và phải nhớ xóa nó khi hoàn tất. Đặc biệt khó chịu khi kiểm tra tập lệnh của người khác. Đối với Python3, sử dụng input()
.
Sử dụng một trình soạn thảo tạm dừng cho bạn. Một số trình soạn thảo được chuẩn bị cho python sẽ tự động tạm dừng cho bạn sau khi thực hiện. Các trình soạn thảo khác cho phép bạn định cấu hình dòng lệnh mà nó sử dụng để chạy chương trình của bạn. Tôi thấy nó đặc biệt hữu ích khi cấu hình nó là " python -i myscript.py
" khi chạy. Điều đó đưa bạn đến một lớp vỏ trăn sau khi kết thúc chương trình, với môi trường chương trình được tải, do đó bạn có thể tiếp tục chơi với các biến và gọi các hàm và phương thức.
cmd /k
là cách điển hình để mở bất kỳ ứng dụng bảng điều khiển nào (không chỉ Python) với cửa sổ bàn điều khiển sẽ vẫn còn sau khi đóng ứng dụng. Cách dễ nhất tôi có thể nghĩ để làm điều đó, là nhấn Win + R, nhập cmd /k
và sau đó kéo và thả tập lệnh bạn muốn vào hộp thoại Run.
cmd /k
là chỉ dành cho Windows. Tôi không thể giúp với một sự thay thế Mac, xin lỗi.
Bắt đầu tập lệnh từ cửa sổ cmd đã mở hoặc ở cuối tập lệnh thêm một cái gì đó như thế này, trong Python 2:
raw_input("Press enter to exit ;)")
Hoặc, trong Python 3:
input("Press enter to exit ;)")
Để giữ cho cửa sổ của bạn mở trong trường hợp ngoại lệ (chưa, trong khi in ngoại lệ)
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
Để giữ cho cửa sổ mở trong mọi trường hợp:
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Đối với Python3, bạn sẽ phải sử dụng input()
thay thếraw_input()
và dĩ nhiên điều chỉnh các print
câu lệnh.
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
print("Press Enter to continue ...")
input()
Để giữ cho cửa sổ mở trong mọi trường hợp:
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
finally:
print("Press Enter to continue ...")
input()
bạn có thể kết hợp các câu trả lời trước: (cho người dùng Notepad ++)
nhấn F5 để chạy tập lệnh hiện tại và gõ lệnh:
cmd /k python -i "$(FULL_CURRENT_PATH)"
bằng cách này, bạn sẽ ở trong chế độ tương tác sau khi thực thi tập lệnh python Notepad ++ của mình và bạn có thể chơi xung quanh với các biến của mình, v.v.
Tạo một tệp bó Windows với 2 dòng sau:
python your-program.py
pause
import os os.system("pause")
ở cuối .py
tập tin
raw_input
hoặc rác khác chỉ đơn giản là sai. Nhập lệnh của bạn vào dòng lệnh theo cách Python mong đợi bạn hoặc sử dụng ngôn ngữ bó đã được cung cấp với MS-DOS cho chính xác mục đích này kể từ tháng 8 năm 1981 .
python %*
và đặt nó làm một trong những chương trình "mở bằng" để bạn có thể nhấp chuột phải vào tệp .py để mở cửa sổ tạm dừng hoặc tôi cũng đặt nó vào thư mục Anaconda3 của mình (trong PATH) dưới dạng py_pause.bat Tôi có thể chạy py_pause my-prog.py all my args
từ dòng cmd
Trong python 2, bạn có thể làm điều đó với: raw_input ()
>>print("Hello World!")
>>raw_input('Waiting a key...')
Trong python 3 bạn có thể làm điều đó với: input ()
>>print("Hello world!")
>>input('Waiting a key...')
Ngoài ra, bạn có thể làm điều đó với time.s ngủ (thời gian)
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Sử dụng atexit
, bạn có thể tạm dừng chương trình ngay khi thoát. Nếu một lỗi / ngoại lệ là lý do cho việc thoát, nó sẽ tạm dừng sau khi in stacktrace.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
Trong chương trình của tôi, tôi đặt lệnh gọi atexit.register
trong except
mệnh đề, để nó sẽ chỉ tạm dừng nếu có sự cố.
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, 'Press Enter to continue...')
raise # Reraise the exception.
Tôi đã có một vấn đề tương tự. Với Notepad ++, tôi thường sử dụng lệnh: C:\Python27\python.exe "$(FULL_CURRENT_PATH)"
đóng cửa sổ cmd ngay sau khi mã kết thúc.
Bây giờ tôi đang sử dụng cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
để giữ cho cửa sổ cmd mở.
Để giữ cho cửa sổ mở, tôi đồng ý với Anurag và đây là những gì tôi đã làm để giữ cho các cửa sổ của mình mở cho các chương trình loại tính toán ngắn.
Điều này sẽ chỉ hiển thị một con trỏ không có văn bản:
raw_input()
Ví dụ tiếp theo này sẽ cung cấp cho bạn một thông báo rõ ràng rằng chương trình đã được thực hiện và không chờ đợi trên một dấu nhắc đầu vào khác trong chương trình:
print('You have reached the end and the "raw_input()" function is keeping the window open')
raw_input()
Ghi chú!
(1) Trong python 3, không có raw_input () , chỉ có input () .
(2) Sử dụng dấu ngoặc đơn để chỉ chuỗi; mặt khác, nếu bạn gõ gấp đôi xung quanh bất cứ thứ gì, chẳng hạn như "raw_input ()", nó sẽ nghĩ rằng đó là một hàm, biến, v.v. và không phải là văn bản.
Trong ví dụ tiếp theo này, tôi sử dụng dấu ngoặc kép và nó sẽ không hoạt động vì nó nghĩ rằng có sự ngắt quãng trong dấu ngoặc giữa "hàm" và "hàm" mặc dù khi bạn đọc nó, tâm trí của bạn có thể hiểu ý nghĩa hoàn hảo của nó:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Hy vọng rằng điều này sẽ giúp những người khác có thể bắt đầu và vẫn chưa biết máy tính nghĩ gì. Nó có thể mất một lúc. : o)
Nếu bạn muốn chạy tập lệnh của mình từ lối tắt trên màn hình, nhấp chuột phải vào tệp python của bạn và chọn Send to|Desktop (create shortcut)
. Sau đó nhấp chuột phải vào phím tắt và chọn Thuộc tính. Trên tab Phím tắt, chọn hộp văn bản Target: và thêm cmd /k
vào trước đường dẫn và bấm OK. Phím tắt bây giờ sẽ chạy tập lệnh của bạn mà không cần đóng và bạn không cầninput('Hit enter to close')
Lưu ý, nếu bạn có nhiều phiên bản python trên máy của mình, hãy thêm tên của python cần thiết có thể thực thi được giữa cmd / k và đường dẫn scipt như thế này:
cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"
Ngoài input
và raw_input
, bạn cũng có thể sử dụng một while
vòng lặp vô hạn , như thế này:
while True: pass
(Python 2.5 + / 3) hoặcwhile 1: pass
(tất cả các phiên bản của Python 2/3). Điều này có thể sử dụng sức mạnh tính toán, mặc dù.
Bạn cũng có thể chạy chương trình từ dòng lệnh. Nhập python
vào dòng lệnh (Mac OS X Terminal) và thông báo Python 3.?.?
(Phiên bản Python của bạn) Nó không hiển thị phiên bản Python của bạn, hoặc nói python: command not found
, xem xét việc thay đổi giá trị PATH (giá trị enviromentl, được liệt kê ở trên) / type C:\(Python folder\python.exe
. Nếu thành công, hãy nhập python
hoặc C:\(Python installation)\python.exe
và thư mục đầy đủ của chương trình của bạn.
Một câu trả lời rất muộn, nhưng tôi đã tạo một tệp Windows Batch pythonbat.bat
có tên như sau:
python.exe %1
@echo off
echo.
pause
và sau đó được chỉ định pythonbat.bat
làm trình xử lý mặc định cho.py
các tệp.
Bây giờ, khi tôi nhấp đúp vào một .py
tệp trong File Explorer, nó sẽ mở một cửa sổ giao diện điều khiển mới, chạy tập lệnh Python và sau đó tạm dừng (vẫn mở), cho đến khi tôi nhấn bất kỳ phím nào ...
Không có thay đổi cần thiết cho bất kỳ tập lệnh Python.
Tôi vẫn có thể mở một cửa sổ giao diện điều khiển và chỉ định python myscript.py
nếu tôi muốn ...
(Tôi chỉ nhận thấy @maurizio đã đăng câu trả lời chính xác này)
Bạn có thể mở PowerShell và gõ "python". Sau khi Python được nhập, bạn có thể sao chép dán mã nguồn từ trình soạn thảo văn bản yêu thích của mình để chạy mã.
Cửa sổ sẽ không đóng.
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
Cách đơn giản nhất:
import time
#Your code here
time.sleep(60)
#end of code (and console shut down)
Điều này sẽ để lại mã trong 1 phút sau đó đóng nó.
Trên windows 10 chèn lúc năn nỉ này:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Lạ, nhưng nó hoạt động với tôi! (Tất nhiên là cùng với đầu vào () ở cuối)