Làm cách nào để mở exe cmd bằng Python?

Xin chào, tôi hy vọng bạn có một ngày tốt lành

Làm cách nào để mở dấu nhắc lệnh
và sau đó gửi lệnh đến cửa sổ bảng điều khiển đã mở từ tập lệnh python

Tôi đã thử như sau
+tiến trình con. Popen[[‘cmd’,‘một số lệnh’],cwd=…]
Dòng trên chỉ mở cửa sổ cmd chứ không truyền lệnh thứ 2 trong danh sách vào cmd. người cũ
hệ điều hành. exec tạo ra kết quả tương tự như quy trình con. Giáo Hoàng[…]

hệ điều hành = cửa sổ 7

Cảm ơn bất kỳ hoặc giải pháp sẽ được đánh giá rất cao

Phần này cung cấp thông tin về cách chạy python và sử dụng dấu nhắc lệnh trên máy tính của bạn. Chúng tôi đã cố gắng hết sức để cung cấp thông tin cho tất cả các hệ điều hành chính [mặc dù việc này dễ dàng hơn trên một số hệ thống so với các hệ thống khác]

Trên Mac OSX

Cửa sổ Terminal giống như một phiên bản dựa trên văn bản của máy tính của bạn. Từ đây, nhiều hành động phổ biến, như tạo hoặc điều hướng thư mục và khởi chạy ứng dụng, có thể được thực hiện thông qua dòng lệnh. Trên Mac và Linux, có thể truy cập ứng dụng Terminal từ thư mục Ứng dụng hoặc sử dụng chức năng tìm kiếm nhanh. Hãy tìm hình ảnh này

Trên Windows

Windows cho phép bạn thực hiện nhiều hành động phổ biến, như tạo hoặc điều hướng thư mục và khởi chạy ứng dụng, từ dấu nhắc lệnh CMD. Thực hiện tìm kiếm cho cmd. exe trên máy tính của bạn. Ghi chú. Python có thể không được thiết lập đúng trên windows. Nếu bạn không thể làm cho python hoạt động từ dòng lệnh [như được giải thích bên dưới] thì đây là một liên kết sẽ giúp bạn thiết lập mọi thứ

Chạy Python

Bước tiếp theo là mở "trình thông dịch" Python. Trên dòng lệnh gõ python3 và nhấn phím return. "3" cho biết phiên bản python mà chúng tôi sẽ sử dụng trong phòng thí nghiệm này. Bạn sẽ thấy một cái gì đó tương tự như sau


Alonzos-MacBook:~ alonzo$ python3
Python 3.4.0 [v3.4.0:04f714765c13, Month DD YYYY, HH:MM:SS] 
[GCC X.X.X] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
        

Ghi chú. Phiên bản Python đang được sử dụng trong phòng thí nghiệm này là Python 3. 4. Trên máy tính của bạn, bạn có thể không có phiên bản 3. 4. Hãy thử chỉ tải python nếu bạn không có phiên bản 3. Có một vài điểm khác biệt với Python 2. x, nhưng mọi thứ trong phòng thí nghiệm này sẽ hoạt động tốt ở cả hai phiên bản

>>> cho biết nơi nhập mã python. Sau khi nhập một dòng mã, nhấn phím Enter sẽ yêu cầu trình thông dịch python chạy hướng dẫn. Hãy thử nhập nội dung sau vào trình thông dịch


>>> 3 + 5
8
        

Nếu con trỏ văn bản nằm trên một dòng bắt đầu bằng >>>, thì cửa sổ dòng lệnh có trình thông dịch python đang hoạt động đang mở. Từ đây bạn sẽ không thể chạy bất kỳ lệnh nào khác. Để thoát khỏi trình thông dịch python, hãy gõ lệnh thoát exit[] và nhấn phím Enter


>>> exit[]
Alonzos-MacBook:~ alonzo$
        

Mọi chức năng hoặc biến được tạo trong trình thông dịch python sẽ bị xóa khi chạy lệnh exit[]

Đây không nhất thiết là một câu hỏi đơn giản. Nếu bạn đã quen với việc chạy các chương trình từ dòng lệnh Windows thì mọi thứ sẽ có vẻ rõ ràng;

Trừ khi bạn sử dụng một số loại môi trường phát triển tích hợp, nếu không thì cuối cùng bạn sẽ nhập các lệnh Windows vào thứ được gọi là “Cửa sổ nhắc lệnh”. Thông thường, bạn có thể tạo một cửa sổ như vậy từ thanh tìm kiếm của mình bằng cách tìm kiếm

D:\YourName\Projects\Python>
1. Bạn sẽ có thể nhận ra khi nào bạn đã khởi động một cửa sổ như vậy vì bạn sẽ thấy một “dấu nhắc lệnh” của Windows, thường giống như thế này

C:\>

Bức thư có thể khác và có thể có những thứ khác sau nó, vì vậy bạn có thể dễ dàng nhìn thấy một cái gì đó như

D:\YourName\Projects\Python>

tùy thuộc vào cách máy tính của bạn đã được thiết lập và những gì bạn đã làm gần đây với nó. Khi bạn đã bắt đầu một cửa sổ như vậy, bạn đã sẵn sàng để chạy các chương trình Python

Bạn cần nhận ra rằng các tập lệnh Python của bạn phải được xử lý bởi một chương trình khác có tên là trình thông dịch Python. Trình thông dịch đọc tập lệnh của bạn, biên dịch nó thành mã byte, sau đó thực thi mã byte để chạy chương trình của bạn. Vì vậy, làm thế nào để bạn sắp xếp trình thông dịch xử lý Python của bạn?

Trước tiên, bạn cần đảm bảo rằng cửa sổ lệnh của bạn nhận ra từ “py” là hướng dẫn để khởi động trình thông dịch. Nếu bạn đã mở một cửa sổ lệnh, bạn nên thử nhập lệnh

D:\YourName\Projects\Python>
2 và nhấn return

C:\Users\YourName> py

Sau đó, bạn sẽ thấy một cái gì đó như

________số 8_______

Bạn đã khởi động trình thông dịch ở “chế độ tương tác”. Điều đó có nghĩa là bạn có thể nhập các câu lệnh hoặc biểu thức Python một cách tương tác và để chúng được thực thi hoặc đánh giá trong khi chờ đợi. Đây là một trong những tính năng mạnh nhất của Python. Kiểm tra nó bằng cách nhập một vài biểu thức bạn chọn và xem kết quả

>>> print["Hello"]
Hello
>>> "Hello" * 3
'HelloHelloHello'

Nhiều người sử dụng chế độ tương tác như một máy tính tiện lợi nhưng có khả năng lập trình cao. Khi bạn muốn kết thúc phiên Python tương tác của mình, hãy gọi hàm hoặc giữ phím Ctrl trong khi nhập Z, sau đó nhấn phím “Enter” để quay lại dấu nhắc lệnh Windows của bạn

Bạn cũng có thể thấy rằng mình có một mục trong menu Bắt đầu, chẳng hạn như Bắt đầu ‣ Chương trình ‣ Python 3. x ‣ Python [dòng lệnh] khiến bạn nhìn thấy dấu nhắc

D:\YourName\Projects\Python>
4 trong một cửa sổ mới. Nếu vậy, cửa sổ sẽ biến mất sau khi bạn gọi hàm hoặc nhập ký tự Ctrl-Z; .

Bây giờ chúng ta biết lệnh

D:\YourName\Projects\Python>
2 đã được nhận dạng, bạn có thể cung cấp tập lệnh Python của mình cho lệnh đó. Bạn sẽ phải cung cấp đường dẫn tuyệt đối hoặc tương đối cho tập lệnh Python. Giả sử tập lệnh Python của bạn được đặt trong máy tính để bàn của bạn và được đặt tên là
D:\YourName\Projects\Python>
7 và dấu nhắc lệnh của bạn được mở độc đáo trong thư mục chính của bạn, vì vậy bạn sẽ thấy một cái gì đó tương tự như

C:\Users\YourName>

Vì vậy, bây giờ bạn sẽ yêu cầu lệnh

D:\YourName\Projects\Python>
2 cung cấp tập lệnh của bạn cho Python bằng cách nhập
D:\YourName\Projects\Python>
2, sau đó là đường dẫn tập lệnh của bạn

C:\Users\YourName> py Desktop\hello.py
hello

Trên Windows, trình cài đặt Python tiêu chuẩn đã liên kết. phần mở rộng py với một loại tệp [Python. File] và cung cấp cho loại tệp đó một lệnh mở để chạy trình thông dịch [

C:\Users\YourName> py
0]. Điều này là đủ để làm cho các tập lệnh có thể thực thi được từ dấu nhắc lệnh dưới dạng 'foo. py'. Nếu bạn muốn có thể thực thi tập lệnh bằng cách gõ đơn giản 'foo' mà không cần phần mở rộng, bạn cần thêm. py vào biến môi trường PATHEXT

Thông thường Python khởi động rất nhanh trên Windows, nhưng thỉnh thoảng có báo cáo lỗi Python đột nhiên khởi động rất lâu. Điều này thậm chí còn khó hiểu hơn vì Python sẽ hoạt động tốt trên các hệ thống Windows khác có vẻ như được cấu hình giống hệt nhau

Sự cố có thể do cấu hình sai của phần mềm kiểm tra vi-rút trên máy gặp sự cố. Một số trình quét vi-rút đã được biết là giới thiệu chi phí khởi động ở hai bậc độ lớn khi trình quét được định cấu hình để giám sát tất cả các lần đọc từ hệ thống tệp. Hãy thử kiểm tra cấu hình của phần mềm quét vi-rút trên hệ thống của bạn để đảm bảo rằng chúng thực sự được cấu hình giống hệt nhau. McAfee, khi được định cấu hình để quét tất cả hoạt động đọc của hệ thống tệp, là một kẻ vi phạm cụ thể

Xem danh sách các công cụ có thể được sử dụng để thực thi

Đúng,. các tệp pyd là dll, nhưng có một vài điểm khác biệt. Nếu bạn có một DLL tên là

C:\Users\YourName> py
2, thì nó phải có hàm
C:\Users\YourName> py
3. Sau đó, bạn có thể viết Python "nhập foo" và Python sẽ tìm kiếm foo. pyd [cũng như foo. py, foo. pyc] và nếu nó tìm thấy nó, nó sẽ cố gắng gọi
C:\Users\YourName> py
3 để khởi tạo nó. Bạn không liên kết của bạn. exe với foo. lib, vì điều đó sẽ khiến Windows yêu cầu phải có DLL

Lưu ý rằng đường dẫn tìm kiếm cho foo. pyd là PYTHONPATH, không giống với đường dẫn mà Windows sử dụng để tìm kiếm foo. dll. Ngoài ra, foo. không cần phải có pyd để chạy chương trình của bạn, trong khi nếu bạn đã liên kết chương trình của mình với một dll, thì dll là bắt buộc. Tất nhiên, foo. pyd là bắt buộc nếu bạn muốn nói

C:\Users\YourName> py
5. Trong một DLL, liên kết được khai báo trong mã nguồn với
C:\Users\YourName> py
6. trong một. pyd, liên kết được xác định trong danh sách các chức năng có sẵn

Nhúng trình thông dịch Python vào ứng dụng Windows có thể được tóm tắt như sau

  1. Không xây dựng Python vào của bạn. tập tin exe trực tiếp. Trên Windows, Python phải là một DLL để xử lý việc nhập các mô-đun mà chính chúng là DLL. [Đây là sự thật không có giấy tờ quan trọng đầu tiên. ] Thay vào đó, hãy liên kết tới

    C:\Users\YourName> py
    
    7; . NN là phiên bản Python, một số chẳng hạn như “33” cho Python 3. 3

    Bạn có thể liên kết với Python theo hai cách khác nhau. Liên kết thời gian tải có nghĩa là liên kết với

    C:\Users\YourName> py
    
    9, trong khi liên kết thời gian chạy có nghĩa là liên kết với
    C:\Users\YourName> py
    
    7. [Ghi chú chung.
    C:\Users\YourName> py
    
    9 được gọi là “lib nhập khẩu” tương ứng với
    C:\Users\YourName> py
    
    7. Nó chỉ định nghĩa các ký hiệu cho trình liên kết. ]

    Liên kết thời gian chạy đơn giản hóa rất nhiều tùy chọn liên kết; . Mã của bạn phải tải

    C:\Users\YourName> py
    
    7 bằng cách sử dụng quy trình
    Python 3.6.4 [v3.6.4:d48eceb, Dec 19 2017, 06:04:45] [MSC v.1900 32 bit [Intel]] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    4 của Windows. Mã này cũng phải sử dụng quy trình truy cập và dữ liệu trong
    C:\Users\YourName> py
    
    7 [nghĩa là API C của Python] bằng cách sử dụng các con trỏ thu được từ quy trình
    Python 3.6.4 [v3.6.4:d48eceb, Dec 19 2017, 06:04:45] [MSC v.1900 32 bit [Intel]] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    6 của Windows. Macro có thể làm cho việc sử dụng các con trỏ này trong suốt đối với bất kỳ mã C nào gọi các quy trình trong API C của Python

  2. Nếu bạn sử dụng SWIG, bạn có thể dễ dàng tạo một “mô-đun mở rộng” Python để cung cấp dữ liệu và phương thức của ứng dụng cho Python. SWIG sẽ xử lý tất cả các chi tiết khó chịu cho bạn. Kết quả là mã C mà bạn liên kết vào. tập tin exe [. ] Bạn không phải tạo tệp DLL và điều này cũng đơn giản hóa việc liên kết

  3. SWIG sẽ tạo một hàm init [hàm C] có tên phụ thuộc vào tên của mô-đun mở rộng. Ví dụ: nếu tên của mô-đun là leo, hàm init sẽ được gọi là initleo[]. Nếu bạn sử dụng các lớp bóng tối SWIG, thì hàm init sẽ được gọi là initleoc[]. Điều này khởi tạo một lớp trợ giúp chủ yếu ẩn được sử dụng bởi lớp bóng tối

    Lý do bạn có thể liên kết mã C ở bước 2 với. exe là việc gọi hàm khởi tạo tương đương với việc nhập mô-đun vào Python. [Đây là sự thật quan trọng thứ hai không có giấy tờ. ]

  4. Tóm lại, bạn có thể sử dụng đoạn mã sau để khởi tạo trình thông dịch Python với mô-đun mở rộng của mình

    #include 
    ...
    Py_Initialize[];  // Initialize Python.
    initmyAppc[];  // Initialize [import] the helper class.
    PyRun_SimpleString["import myApp"];  // Import the shadow class.
    

  5. Có hai vấn đề với API C của Python sẽ trở nên rõ ràng nếu bạn sử dụng trình biên dịch không phải MSVC, trình biên dịch được sử dụng để xây dựng pythonNN. dll

    vấn đề 1. Cái gọi là hàm “Cấp cao” nhận đối số

    Python 3.6.4 [v3.6.4:d48eceb, Dec 19 2017, 06:04:45] [MSC v.1900 32 bit [Intel]] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    7 sẽ không hoạt động trong môi trường nhiều trình biên dịch vì khái niệm của mỗi trình biên dịch về một
    Python 3.6.4 [v3.6.4:d48eceb, Dec 19 2017, 06:04:45] [MSC v.1900 32 bit [Intel]] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    8 sẽ khác nhau. Từ quan điểm triển khai, đây là các hàm cấp rất thấp

    vấn đề 2. SWIG tạo mã sau khi tạo trình bao bọc để vô hiệu hóa chức năng

    Py_INCREF[Py_None];
    _resultobj = Py_None;
    return _resultobj;
    

    Than ôi, Py_None là một macro mở rộng thành tham chiếu đến cấu trúc dữ liệu phức tạp có tên _Py_NoneStruct bên trong pythonNN. dll. Một lần nữa, mã này sẽ thất bại trong môi trường nhiều trình biên dịch. Thay thế mã đó bằng

    return Py_BuildValue[""];
    

    Có thể sử dụng lệnh

    Python 3.6.4 [v3.6.4:d48eceb, Dec 19 2017, 06:04:45] [MSC v.1900 32 bit [Intel]] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    9 của SWIG để thực hiện thay đổi một cách tự động, mặc dù tôi chưa thể làm cho lệnh này hoạt động được [Tôi là một người mới hoàn toàn sử dụng SWIG]

  6. Sử dụng tập lệnh shell Python để tạo cửa sổ trình thông dịch Python từ bên trong ứng dụng Windows của bạn không phải là một ý kiến ​​hay; . Thay vào đó, bạn [hoặc lớp wxPythonWindow] nên tạo một cửa sổ thông dịch “gốc”. Thật dễ dàng để kết nối cửa sổ đó với trình thông dịch Python. Bạn có thể chuyển hướng i/o của Python sang đối tượng _any_ hỗ trợ đọc và ghi, vì vậy tất cả những gì bạn cần là một đối tượng Python [được định nghĩa trong mô-đun mở rộng của bạn] có chứa các phương thức read[] và write[]

Câu hỏi thường gặp không khuyến nghị sử dụng tab và hướng dẫn kiểu Python, PEP 8, đề xuất 4 khoảng trắng cho mã Python phân tán;

Dưới bất kỳ trình chỉnh sửa nào, trộn lẫn các tab và dấu cách là một ý tưởng tồi. MSVC không có gì khác biệt về mặt này và được cấu hình dễ dàng để sử dụng khoảng trắng. Chọn Công cụ ‣ Tùy chọn ‣ Tab và đối với loại tệp “Mặc định”, đặt “Kích thước tab” và “Kích thước thụt lề” thành 4 và chọn “Chèn .

Python tăng hoặc nếu các tab và khoảng trắng hỗn hợp đang gây ra sự cố trong khoảng trắng ở đầu. Bạn cũng có thể chạy mô-đun để kiểm tra cây thư mục ở chế độ hàng loạt

sử dụng mô-đun. Đây là mô-đun mở rộng tiêu chuẩn dành riêng cho Windows. Nó định nghĩa một hàm

>>> print["Hello"]
Hello
>>> "Hello" * 3
'HelloHelloHello'
4 để kiểm tra xem có gõ bàn phím hay không và
>>> print["Hello"]
Hello
>>> "Hello" * 3
'HelloHelloHello'
5 nhận một ký tự mà không lặp lại ký tự đó

Điều này có thể xảy ra trên Python 3. 5 trở lên khi sử dụng Windows 8. 1 hoặc cũ hơn mà chưa cài đặt tất cả các bản cập nhật. Trước tiên, hãy đảm bảo hệ điều hành của bạn được hỗ trợ và cập nhật, đồng thời nếu điều đó không giải quyết được sự cố, hãy truy cập trang hỗ trợ của Microsoft để được hướng dẫn cài đặt bản cập nhật C Runtime theo cách thủ công

Chủ Đề