Ví dụ cmd Python
Nếu vậy, tùy thuộc vào nhu cầu của bạn, bạn có thể sử dụng một trong hai phương pháp bên dưới để thực thi lệnh Dấu nhắc Lệnh từ Python Show
(1) CMD /K – thực hiện lệnh rồi giữ nguyên import os os.system('cmd /k "Your Command Prompt Command"') (2) CMD /C – thực hiện lệnh rồi kết thúc import os os.system('cmd /c "Your Command Prompt Command"') Bạn vẫn không chắc chắn cách áp dụng các phương pháp trên trong Python? Sau đó, hãy xem lại một số ví dụ để hiểu rõ hơn về cách thực thi lệnh Command Prompt từ Python Các phương pháp để thực thi lệnh nhắc lệnh từ PythonPhương pháp 1 (CMD /K). Thực hiện một lệnh và sau đó ở lạiĐể xem cách áp dụng phương thức đầu tiên trong thực tế, hãy xem lại một ví dụ đơn giản nơi chúng ta sẽ thực thi một lệnh đơn giản trong Python để
Sau đó, bạn có thể áp dụng đoạn mã sau trong Python để đạt được các mục tiêu trên import os os.system('cmd /k "date"') Khi bạn chạy mã bằng Python, bạn sẽ nhận được ngày trong dấu nhắc lệnh Ngày hiện tại là. Thứ sáu 25/06/2021 Bây giờ nếu bạn muốn thực thi nhiều lệnh nhắc lệnh từ Python thì sao? Nếu đúng như vậy, bạn có thể chèn ký hiệu '&' (hoặc các ký hiệu khác, chẳng hạn như '&&') vào giữa các lệnh Ví dụ, nếu bạn muốn hiển thị tất cả các ký tự trong dấu nhắc lệnh bằng màu xanh lá cây và hiển thị ngày hiện tại thì sao? Sau đó, bạn có thể sử dụng cú pháp sau trong Python import os os.system('cmd /k "color a & date"') Bây giờ bạn sẽ thấy ngày hiện tại được hiển thị bằng màu xanh lục Ngày hiện tại là. Thứ sáu 25/06/2021 Lưu ý rằng đối với các lệnh phức tạp hơn, bạn có thể thấy hữu ích khi chạy một tệp bó từ Python Cách 2 (CMD /C). Thực hiện một lệnh và sau đó chấm dứtĐối với phương pháp này, bạn có thể thực hiện các lệnh tương tự như đã xem xét trong phương pháp đầu tiên, chỉ có điều lần này Dấu nhắc lệnh sẽ bị đóng sau khi thực hiện các lệnh Ví dụ: bạn có thể áp dụng đoạn mã sau trong Python để thay đổi màu của tất cả các ký tự thành màu xanh lá cây import os os.system('cmd /c "color a"') Trong trường hợp này, lệnh sẽ vẫn được thực thi, nhưng bạn có thể không nhìn thấy nó trên màn hình của mình Nói chung, bạn có thể nhận được một chú thích hữu ích với nhiều thông tin hơn bằng cách nhập lệnh bên dưới trong Dấu nhắc Lệnh từ __future__ nhập print_function, phân chia nhập lớp cmd Máy tính (cmd. Cmd). prompt = 'calc >>> ' intro = 'Máy tính đơn giản có thể thực hiện phép cộng, phép trừ, phép nhân và phép chia. ' def do_add(bản thân, dòng). args = dòng. split() tổng = 0 cho arg trong args. tổng += float(arg. dải()) in (tổng) def help_add(self). in('\n'. join([ 'add [number,]', 'Cộng các đối số lại với nhau và hiển thị tổng. ' ])) def do_subtract(self, line). args = dòng. split() tổng = 0 nếu len(args) > 0. tổng = float(args[0]) cho arg trong args[1. ]. tổng -= float(arg. dải ()) in (tổng) def help_subtract (tự). in('\n'. tham gia ([ 'trừ [số,]', 'Trừ tất cả các đối số sau từ đối số đầu tiên. ' ])) def do_EOF(self, line). print('bye, bye') trả về True nếu __name__ == '__main__'. Máy tính(). cmdloop()Máy tính xách tay Jupyter và các công cụ tương tác khác rất phù hợp để tạo mẫu mã và khám phá dữ liệu, nhưng sớm hay muộn chúng ta sẽ muốn sử dụng chương trình của mình trong một đường dẫn hoặc chạy nó trong tập lệnh trình bao để xử lý hàng nghìn tệp dữ liệu. Để làm được điều đó, chúng ta cần làm cho các chương trình của mình hoạt động giống như các công cụ dòng lệnh Unix khác. Ví dụ: chúng tôi có thể muốn một chương trình đọc tập dữ liệu và in mức độ viêm trung bình trên mỗi bệnh nhân
Chương trình này thực hiện chính xác những gì chúng tôi muốn - nó in mức độ viêm trung bình trên mỗi bệnh nhân đối với một tệp nhất định
Chúng tôi cũng có thể muốn xem xét tối thiểu bốn dòng đầu tiên ________số 8 hoặc các lần viêm tối đa trong một số tệp lần lượt
kịch bản của chúng tôi nên làm như sau
Để thực hiện công việc này, chúng ta cần biết cách xử lý các đối số dòng lệnh trong chương trình và hiểu cách xử lý đầu vào tiêu chuẩn. Chúng tôi sẽ lần lượt giải quyết những câu hỏi dưới đây Đối số dòng lệnhSử dụng trình soạn thảo văn bản bạn chọn, lưu phần sau vào tệp văn bản có tên là 6import os os.system('cmd /c "Your Command Prompt Command"')4 Dòng đầu tiên nhập một thư viện có tên là 7, viết tắt của “system”. Nó xác định các giá trị như 8, mô tả phiên bản Python nào chúng tôi đang chạy. Chúng ta có thể chạy tập lệnh này từ dòng lệnh như thế nàyimport os os.system('cmd /c "Your Command Prompt Command"')7
Tạo một tệp khác có tên 9 và lưu văn bản sau vào đóimport os os.system('cmd /k "date"')0 Cái tên lạ tai import os os.system('cmd /k "date"')00 là viết tắt của “argument values”. Bất cứ khi nào Python chạy một chương trình, nó sẽ lấy tất cả các giá trị được cung cấp trên dòng lệnh và đặt chúng vào danh sách import os os.system('cmd /k "date"')01 để chương trình có thể xác định chúng là gì. Nếu chúng ta chạy chương trình này mà không có đối số import os os.system('cmd /k "date"')3 import os os.system('cmd /k "date"')4 điều duy nhất trong danh sách là đường dẫn đầy đủ đến tập lệnh của bạn, đường dẫn này luôn là ________ 202. Tuy nhiên, nếu chúng ta chạy nó với một vài đối số 0 1sau đó Python thêm từng đối số đó vào danh sách ma thuật đó Với điều này trong tay, hãy xây dựng một phiên bản import os os.system('cmd /k "date"')03 luôn in giá trị trung bình cho mỗi bệnh nhân của một tệp dữ liệu. Bước đầu tiên là viết một hàm phác thảo cách triển khai của chúng ta và một trình giữ chỗ cho hàm thực hiện công việc thực tế. Theo quy ước, chức năng này thường được gọi là import os os.system('cmd /k "date"')04, mặc dù chúng ta có thể gọi nó là gì chúng ta muốn 2 3Hàm này lấy tên của tập lệnh từ import os os.system('cmd /k "date"')02, vì đó là nơi luôn đặt tập lệnh và tên của tệp để xử lý từ import os os.system('cmd /k "date"')06. Đây là một thử nghiệm đơn giản 4Không có đầu ra bởi vì chúng tôi đã xác định một chức năng, nhưng chưa thực sự gọi nó. Hãy thêm một cuộc gọi đến import os os.system('cmd /k "date"')04 5 6và chạy nó 7 8
Xử lý nhiều tệpBước tiếp theo là hướng dẫn chương trình của chúng ta cách xử lý nhiều tệp. Vì 60 dòng đầu ra trên mỗi tệp là rất nhiều trang, chúng tôi sẽ bắt đầu bằng cách sử dụng ba tệp nhỏ hơn, mỗi tệp có ba ngày dữ liệu cho hai bệnh nhân 0 1 2 3 4 5Sử dụng các tệp dữ liệu nhỏ làm đầu vào cũng cho phép chúng tôi kiểm tra kết quả của mình dễ dàng hơn. ở đây, ví dụ, chúng ta có thể thấy rằng chương trình của chúng ta đang tính toán giá trị trung bình một cách chính xác cho mỗi dòng, trong khi trước đó chúng ta đã thực sự tin tưởng vào nó. Đây là một quy tắc khác của lập trình. kiểm tra những điều đơn giản đầu tiên Chúng tôi muốn chương trình của mình xử lý từng tệp riêng biệt, vì vậy chúng tôi cần một vòng lặp thực thi một lần cho mỗi tên tệp. Nếu chúng tôi chỉ định các tệp trên dòng lệnh, tên tệp sẽ ở dạng import os os.system('cmd /k "date"')01, nhưng chúng tôi cần cẩn thận. import os os.system('cmd /k "date"')02 sẽ luôn là tên của tập lệnh của chúng tôi, thay vì tên của tệp. Chúng tôi cũng cần xử lý một số lượng tên tệp không xác định, vì chương trình của chúng tôi có thể chạy cho bất kỳ số lượng tệp nào Giải pháp cho cả hai vấn đề là lặp lại nội dung của import os os.system('cmd /k "date"')38. '1' báo cho Python bắt đầu lát ở vị trí 1, vì vậy tên của chương trình không được bao gồm; . Đây là chương trình đã thay đổi của chúng tôi import os os.system('cmd /k "date"')39 6 7và đây là hành động 8 9
Xử lý cờ dòng lệnhBước tiếp theo là hướng dẫn chương trình của chúng ta chú ý đến các cờ 3, 4 và 5. Chúng luôn xuất hiện trước tên của các tệp, vì vậy chúng tôi có thể thực hiện việc này 0 1Những công việc này 2 3nhưng có một số điều sai với nó
Phiên bản này đưa quá trình xử lý của từng tệp ra khỏi vòng lặp thành một chức năng của riêng nó. Nó cũng kiểm tra xem import os os.system('cmd /k "date"')49 có phải là một trong những cờ được phép hay không trước khi thực hiện bất kỳ quá trình xử lý nào, do đó chương trình bị lỗi nhanh 4 5Đây là bốn dòng dài hơn so với người tiền nhiệm của nó, nhưng được chia thành các đoạn 8 và 12 dòng dễ tiêu hóa hơn Xử lý đầu vào tiêu chuẩnĐiều tiếp theo mà chương trình của chúng ta phải làm là đọc dữ liệu từ đầu vào tiêu chuẩn nếu không có tên tệp nào được cung cấp để chúng ta có thể đặt nó vào một đường dẫn, chuyển hướng đầu vào đến nó, v.v. Hãy thử nghiệm trong một tập lệnh khác có tên là 02 6 7Chương trình nhỏ này đọc các dòng từ một “tệp” đặc biệt có tên là 03, được tự động kết nối với đầu vào tiêu chuẩn của chương trình. Chúng tôi không cần phải mở nó - Python và hệ điều hành sẽ lo việc đó khi chương trình khởi động - nhưng chúng tôi có thể làm hầu hết mọi thứ với nó mà chúng tôi có thể làm với một tệp thông thường. Hãy thử chạy nó như thể nó là một chương trình dòng lệnh thông thường 8 9Một lỗi phổ biến là cố chạy thứ gì đó đọc từ đầu vào tiêu chuẩn như thế này import os os.system('cmd /c "Your Command Prompt Command"')40 i. e. , để quên ký tự 04 chuyển hướng tệp sang đầu vào tiêu chuẩn. Trong trường hợp này, không có gì trong đầu vào tiêu chuẩn, vì vậy chương trình sẽ đợi ở đầu vòng lặp để ai đó gõ nội dung nào đó trên bàn phím. Vì không có cách nào để chúng tôi thực hiện việc này nên chương trình của chúng tôi bị kẹt và chúng tôi phải tạm dừng chương trình bằng cách sử dụng tùy chọn 05 từ menu 06 trong NotebookBây giờ chúng ta cần viết lại chương trình để nó tải dữ liệu từ 03 nếu không có tên tệp nào được cung cấp. May mắn thay, 08 có thể xử lý tên tệp hoặc tệp đang mở làm tham số đầu tiên của nó, vì vậy chúng tôi thực sự không cần thay đổi 09. Chỉ import os os.system('cmd /k "date"')04 thay đổi import os os.system('cmd /c "Your Command Prompt Command"')41 import os os.system('cmd /c "Your Command Prompt Command"')42 Hãy thử nó ra import os os.system('cmd /c "Your Command Prompt Command"')43 5Cái đó tốt hơn. Trên thực tế, điều đó đã được thực hiện. chương trình bây giờ làm mọi thứ chúng tôi đặt ra để làm
|