Getopt Python

def _parsebase(argv). """Phân tích cú pháp cho đến phần thứ hai của lệnh. """ shortopts = 'vf. m. ' # version, file, model longopts = ['version', 'file=', 'model=', 'samples-dir=', 'test-split=', 'val-split=', 'cache-dir= . getopt(argv, shortopts, longopts) args = dict(args) # không khớp tiền tố để chọn tham gia bản đồ(lambda s. S. rstrip("="), longopts). # trụ cột. disable=W0640 if ''f'--{opt}' in args chứ không phải any(map(lambda a. một. startedwith('--' + opt), argv)). # tìm khóa không khớp với khóa = map(lambda a. một. tách ("=")[0]. lstrip("-"), argv) keys = list(filter(lambda k. k trong opt, phím)) nếu phím. tăng getopt. GetoptError('Khóa không hợp lệ', opt='--' + keys[0]) other. tăng getopt. GetoptError('Khóa không hợp lệ') # chuyển từ tên ngắn thành tên dài cho sht, lng in (('-v', '--version'), ('-m', '--model'), ('-f . nếu sht trong args. args[lng] = args[sht] del args[sht] args = {k. dải ('-'). v cho k, v trong args. items()} trả về đối số, nghỉ ngơi

Xin chào các chuyên viên máy tính và chào mừng bạn đến với bài viết này, chúng tôi sẽ đề cập đến python getopt. Cùng với đó, để hiểu rõ hơn về tổng thể, chúng ta sẽ xem xét cú pháp và tham số của nó. Sau đó, chúng ta sẽ xem một vài ví dụ để hiểu chủ đề tốt hơn. Nhưng trước tiên, chúng ta hãy cố gắng hiểu sơ lược về hàm thông qua định nghĩa của nó

Giống như NumPy và Matplotlib, getopt cũng là một module của python. Mô-đun này rất giống với chức năng getopt của ngôn ngữ C. Chức năng này được sử dụng để phân tích các tham số dòng lệnh. Chức năng chính của hàm getopt trong Python là phân tích các tùy chọn dòng lệnh và danh sách tham số. Khi chúng ta tiếp tục trong bài viết này, mọi thứ sẽ trở nên rõ ràng hơn rất nhiều. Trong phần tiếp theo, chúng ta sẽ xem xét cú pháp

nội dung

cú pháp

getopt.getopt()

Đây là cú pháp chung cho chức năng của chúng tôi. Bây giờ chúng ta hãy xem xét các tham số khác nhau liên quan đến nó

Thông số

1. tranh luận

Tham số này đại diện cho loại đối số được truyền qua

2. tùy chọn

Tham số này đại diện cho chuỗi ký tự tùy chọn mà tập lệnh muốn nhận dạng

Thí dụ

import getopt

print getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:')

3. Long_options

Tham số này đại diện cho một danh sách các chuỗi có tên tùy chọn dài

Thí dụ

import getopt

print getopt.getopt([ '--noarg', '--witharg', 'val', '--witharg2=another' ],
                    '',
                    [ 'noarg', 'witharg=', 'witharg2=' ])

Loại trả lại

Khi chạy xong chương trình trả về giá trị gồm 2 phần tử. Loại đầu tiên là danh sách các cặp. Trong khi phần thứ hai là danh sách các đối số chương trình còn lại sau khi tùy chọn bị xóa

Làm cách nào để cài đặt Python getopt?

Không cần cài đặt mô-đun getopt bên ngoài. Đó là một mô-đun sẵn có được tích hợp sẵn trong Python cùng với nó. Cũng giống như bất kỳ mô-đun sẵn có nào khác, bạn có thể sử dụng nó bằng cách –

import getopt

Các ví dụ về getopt trong Python

Bây giờ chúng ta đã hoàn thành tất cả phần lý thuyết. Chúng tôi đã trình bày chi tiết về cú pháp và tham số của nó. Đã đến lúc thảo luận về các ví dụ khác nhau sẽ giúp hiểu rõ hơn về chủ đề này. Chúng ta hãy bắt đầu với một ví dụ ở cấp độ cơ bản và khi chúng ta tiếp tục, chúng ta sẽ tăng dần mức độ ví dụ

1. Tên quốc gia

import sys
import getopt


def country_name():
    state_name = None
    country_name = None

    argv = sys.argv[1:]

    try:
        opts, args = getopt.getopt(argv, "f:l:")

    except:
        print("Error")

    for opt, arg in opts:
        if opt in ['-f']:
            state_name = arg
        elif opt in ['-l']:
            country_name = arg

    print("{0}{1}".format(state_name, country_name))


country_name()

Getopt Python

Từ ví dụ cụ thể này, mục tiêu của chúng tôi là in ra trạng thái và quốc gia bằng cách lấy đầu vào từ người dùng trong dòng lệnh. Để làm như vậy, trước tiên, chúng ta cần nhập 2 mô-đun là sys và getopt. Sau này, tôi đã định nghĩa một hàm và đặt tên nó là tên quốc gia. Sau này, chúng tôi đã sử dụng vòng lặp For và câu lệnh in để có được đầu ra mong muốn. Trong trường hợp này, nếu bạn không nhập các giá trị trong thiết bị đầu cuối, nó sẽ trả về Không Không ở đầu ra

2. Ngày và tháng

import sys
import getopt


def date_month():
    start_date = None
    start_month = None


    
    argv = sys.argv[1:]

    try:
        opts, args = getopt.getopt(argv, "s:e:", ["start_date=", "start_month="])
    except getopt.GetoptError as err:
        print(err)  

    for opt, arg in opts:
        if opt in ["-s", "--start_date"]:
            start_date = arg
        elif opt in ["-e", "--start_month"]:
            start_month = arg

    print('start_date: {}'.format(start_date))
    print('start_month: {}'.format(start_month))


date_month()

Getopt Python

Một ví dụ tương tự về những gì chúng ta đã thảo luận ở trên. Mục tiêu của hàm này lập trình là in ra ngày, tháng. Toàn bộ quy trình tương tự như những gì chúng tôi đã làm theo trong ví dụ đầu tiên

Tùy chọn dài getopt của Python

Tùy chọn dài là tập hợp các đối số được sử dụng ở định dạng '–option='. Các tùy chọn này thường là đối số tùy chọn. Để sử dụng các tùy chọn dài, bạn phải chỉ định một chuỗi trống trong tham số getopt(). Điều này buộc mã chỉ chấp nhận các tùy chọn dài

mã (kiểm tra. py)

import sys
import getopt

argv = sys.argv[1:]

try:
    opts, args = getopt.getopt(argv, "", ["option="])
except getopt.GetoptError as err:
    print(err)  

for opt, arg in opts:
    print(opt, arg)

Phần cuối

python .\test.py --option=hello

đầu ra

________số 8_______

getopt Nhiều đối số

Cụ thể, hàm này nhận 3 đối số. Đối số đầu tiên là chuỗi các đối số sẽ được phân tích cú pháp. Tiếp theo, đối số thứ hai nhận là chuỗi định nghĩa tùy chọn cho tùy chọn một ký tự. Sau đó, đối số thứ 3 lấy tên tùy chọn dài. Các tùy chọn loại dài có thể không chỉ là một ký tự đơn lẻ. Nếu tên tùy chọn dài yêu cầu một đối số, thì tên của nó phải có hậu tố là “=. hậu tố”

Sự khác biệt giữa getopt và argparse

Trong phần này, chúng ta sẽ thảo luận về sự khác biệt cơ bản giữa 2 mô-đun Python này. Cả hai mô-đun Python đều được sử dụng để phân tích đối số dòng lệnh. Như chúng ta đã thảo luận, getopt một cách chi tiết, bây giờ chúng ta hãy cố gắng hiểu sơ qua về argparse. Như đã thảo luận trước đó, cả hai mô-đun đều có chức năng giống nhau. Nhưng nó khuyến nghị sử dụng qua mô-đun getopt. Lý do là nó ít phức tạp hơn. Ngoài ra, nó yêu cầu ít dòng mã hơn để thực thi cùng một chương trình khi so sánh với getopt

cũng đọc

  • 8 lựa chọn nghề nghiệp tốt nhất với Python để kiếm được nhiều tiền
  • Bản đồ Python Chức năng Giải thích và Ví dụ
  • Các cách để đạt được nhiều hàm tạo trong Python
  • Mô-đun dateutil Python. Giải thích và ví dụ

Phần kết luận

Bài viết này bao gồm Python getopt. Bên cạnh đó, chúng tôi cũng đã xem xét cú pháp và tham số của nó. Để hiểu rõ hơn, chúng tôi đã xem xét một vài ví dụ. Chúng tôi đã thay đổi cú pháp và xem kết quả cho từng trường hợp. Cuối cùng, chúng ta có thể kết luận rằng Python getopt là một chức năng mà công việc chính là phân tích cú pháp tùy chọn dòng lệnh

Tôi hy vọng bài viết này có thể xóa tan mọi nghi ngờ. Nhưng trong trường hợp bạn có bất kỳ câu hỏi nào chưa được giải quyết, vui lòng viết chúng bên dưới trong phần bình luận. Đọc xong cái này;

Getopt trong Python là gì?

Mô-đun getopt là trình phân tích cú pháp cho các tùy chọn dòng lệnh dựa trên quy ước được thiết lập bởi hàm getopt() của Unix . Nói chung, nó được sử dụng để phân tích cú pháp một chuỗi đối số, chẳng hạn như sys. argv. Nói cách khác, mô-đun này giúp các tập lệnh phân tích đối số dòng lệnh trong sys. argv.

Tại sao getopt được sử dụng?

Hàm getopt() là một hàm dựng sẵn trong C và được sử dụng để phân tích các đối số dòng lệnh . cú pháp. getopt(int argc, char *const argv[], const char *optstring) optstring chỉ đơn giản là một danh sách các ký tự, mỗi ký tự đại diện cho một tùy chọn ký tự.

GNU getopt là gì?

Phương thức getopt() hoán vị đối số để hiển thị cho người gọi rằng tất cả các tùy chọn đều ở đầu dòng lệnh và tất cả các tùy chọn không nằm ở cuối . Ví dụ: gọi hàm getopt() với đối số dòng lệnh là "-a foo bar -d" trả về các tùy chọn 'a' và 'd', sau đó đặt optind để trỏ đến "foo". . For example, calling getopt() with command line args of "-a foo bar -d" returns options 'a' and 'd', then sets optind to point to "foo".

Thư viện nào là getopt trong C?

Getopt ( Thư viện GNU C )