Hướng dẫn how do i run a python script using command line arguments in pycharm? - làm cách nào để chạy tập lệnh python bằng đối số dòng lệnh trong pycharm?

Các đối số dòng lệnh Python là các tham số được cung cấp cho tập lệnh trong khi thực thi nó. Các đối số dòng lệnh được sử dụng để cung cấp các đầu vào cụ thể cho chương trình.

Lợi ích của các đối số dòng lệnh Python là gì?

Các đối số dòng lệnh Python giúp chúng tôi giữ cho chương trình chung chung về bản chất. Ví dụ: chúng ta có thể viết một chương trình để xử lý tệp CSV. Nếu chúng tôi chuyển tên tệp CSV từ dòng lệnh, thì chương trình của chúng tôi sẽ hoạt động cho bất kỳ tệp CSV nào. Điều này sẽ làm cho chương trình của chúng tôi kết hợp một cách lỏng lẻo và nó sẽ dễ dàng duy trì nó.

Một lợi ích khác của các đối số dòng lệnh là bảo mật bổ sung đi kèm với nó. Hãy nói rằng chúng tôi có một chương trình để lưu dữ liệu vào cơ sở dữ liệu. Nếu chúng tôi lưu trữ thông tin xác thực cơ sở dữ liệu trong tập lệnh hoặc một số tệp cấu hình, nó có thể được truy cập và thực thi bởi bất kỳ ai có quyền truy cập vào các tệp. Nhưng, nếu người dùng/mật khẩu được cung cấp dưới dạng đối số dòng lệnh, thì nó không có trong hệ thống tệp và chương trình của chúng tôi được bảo mật hơn.

Làm thế nào để vượt qua các đối số dòng lệnh trong Python?

Nếu bạn đang chạy tập lệnh Python từ thiết bị đầu cuối, chỉ cần chuyển các đối số sau tên tập lệnh. Các đối số được phân tách bằng các ký tự không gian trắng.

$ python script.py arg1 arg2 ... argN

Vượt qua các đối số dòng lệnh trong pycharm

Pycharm là IDE phổ biến nhất cho lập trình Python. Nếu bạn muốn chuyển các đối số dòng lệnh cho chương trình Python, hãy truy cập Run Run> Chỉnh sửa cấu hình và đặt giá trị tham số và lưu nó.

Python Line Line tranh luận về Pycharm

Làm thế nào để đọc các đối số dòng lệnh trong tập lệnh Python?

Có ba mô-đun phổ biến để đọc và phân tích các đối số dòng lệnh trong tập lệnh Python.

  1. sys.argv
  2. GetOpt
  3. Argparse

1. Đọc các đối số dòng lệnh Python bằng mô-đun SYS

Các đối số dòng lệnh được lưu trữ trong biến mô-đun SYS argv, đây là danh sách các chuỗi. Chúng tôi có thể đọc các đối số dòng lệnh từ danh sách này và sử dụng nó trong chương trình của chúng tôi.

Lưu ý rằng tên tập lệnh cũng là một phần của các đối số dòng lệnh trong biến sys.argv.

import sys

if len[sys.argv] != 2:
    raise ValueError['Please provide email-id to send the email.']

print[f'Script Name is {sys.argv[0]}']

email = sys.argv[1]

print[f'Sending test email to {email}']

Output:

$ python3.7 command-line-args.py [email protected]
Script Name is command-line-args.py
Sending test email to [email protected]
$ python3.7 command-line-args.py                   
Traceback [most recent call last]:
  File "command-line-args.py", line 4, in 
    raise ValueError['Please provide email-id to send the email.']
ValueError: Please provide email-id to send the email.
$

2. Đối số dòng lệnh phân tích cú pháp bằng mô-đun GetOpt

Mô -đun Python GetOpt hoạt động theo cách tương tự như hàm unix getOpt []. Mô -đun này rất hữu ích khi bạn muốn tập lệnh chấp nhận các tùy chọn và giá trị của chúng, tương tự như nhiều lệnh Unix.

Mô-đun này hoạt động cùng với sys.argv để phân tích các đối số dòng lệnh và trích xuất các giá trị tùy chọn trong danh sách các bộ dữ liệu.

import getopt
import sys

argv = sys.argv[1:]

opts, args = getopt.getopt[argv, 'x:y:']

# list of options tuple [opt, value]
print[f'Options Tuple is {opts}']

# list of remaining command-line arguments
print[f'Additional Command-line arguments list is {args}']

Output:

$ python3.7 command-line-args.py -x 1 -y 2 A B            
Options Tuple is [['-x', '1'], ['-y', '2']]
Additional Command-line arguments list is ['A', 'B']
$ 

3. Đối số dòng lệnh phân tích cú pháp bằng mô-đun ArgParse

Chúng ta cũng có thể sử dụng mô-đun Python Argparse để phân tích các đối số dòng lệnh. Có rất nhiều tùy chọn với mô -đun Argparse.

  • lập luận vị trí
  • thông điệp trợ giúp
  • giá trị mặc định cho các đối số
  • Chỉ định loại dữ liệu của đối số và nhiều hơn nữa.

import argparse

# create parser
parser = argparse.ArgumentParser[]

# add arguments to the parser
parser.add_argument["language"]
parser.add_argument["name"]

# parse the arguments
args = parser.parse_args[]

# get the arguments value
if args.language == 'Python':
	print["I love Python too"]
else:
	print["Learn Python, you will like it"]
	
print[f'Hello {args.name}, this was a simple introduction to argparse module']

Output:

$ python3.7 command-line-args.py Python David
I love Python too
Hello David, this was a simple introduction to argparse module
$
$ python3.7 command-line-args.py Java Lisa   
Learn Python, you will like it
Hello Lisa, this was a simple introduction to argparse module
$
$ python3.7 command-line-args.py -h       
usage: command-line-args.py [-h] language name

positional arguments:
  language
  name

optional arguments:
  -h, --help  show this help message and exit
$

Lưu ý rằng thông báo trợ giúp được tự động tạo bởi mô -đun ArgParse.

Sự kết luận

Nếu tập lệnh của bạn yêu cầu các đối số dòng lệnh đơn giản, bạn có thể đi với sys.argv. Nhưng, nếu chương trình của bạn chấp nhận rất nhiều đối số vị trí, các giá trị đối số mặc định, thông báo trợ giúp, v.v., thì bạn nên sử dụng mô -đun ArgParse. Mô -đun GetOpt cũng hoạt động nhưng nó khó hiểu và khó hiểu.

References:

  • sys.argv
  • Mô -đun GetOpt
  • Mô -đun Argparse

Bài Viết Liên Quan

Chủ Đề