Hướng dẫn how do you pass a filename as a parameter in python? - làm thế nào để bạn chuyển tên tệp làm tham số trong python?

Tôi có mã sau trong tệp .py:

Show
import re

regex = re.compile(
    r"""ULLAT:\ (?P<ullat>-?[\d.]+).*?
    ULLON:\ (?P<ullon>-?[\d.]+).*?
    LRLAT:\ (?P<lrlat>-?[\d.]+)""", re.DOTALL|re.VERBOSE)

Tôi có dữ liệu trong tệp .txt dưới dạng chuỗi:

QUADNAME: rockport_colony_SD
RESOLUTION: 10 ULLAT: 43.625 ULLON:
-97.87527466 LRLAT: 43.5 LRLON: -97.75027466 HDATUM: 27 ZMIN: 361.58401489 ZMAX: 413.38400269 ZMEAN: 396.1293335 ZSIGMA: 12.36359215 PMETHOD: 5 QUADDATE: 20001001

Làm thế nào tôi có thể sử dụng python -file để xử lý .txt -file?

Tôi đoán rằng chúng ta cần một tham số trong tệp .py, để chúng ta có thể sử dụng cú pháp như trong thiết bị đầu cuối:

$ py-file file-to-be-processed

Câu hỏi này đã được đặt ra bởi bài viết ở đây.

sys.argv là dễ nhất cho một trường hợp sử dụng đơn giản.

Để sử dụng nâng cao hơn, bạn có thể sử dụng argparse, nhưng tôi thích click (Bộ tạo giao diện dòng lệnh của bộ dụng cụ tạo ra) giúp tạo các công cụ dòng lệnh với Python thực sự dễ dàng:

import click
@click.command()
@click.argument('filename', type=click.Path(exists=True, readable=True), nargs=1)
def main(filename):
    ...

main()

Sử dụng @click.option(), bạn cũng có thể tạo các cờ tùy chỉnh như

QUADNAME: rockport_colony_SD
RESOLUTION: 10 ULLAT: 43.625 ULLON:
-97.87527466 LRLAT: 43.5 LRLON: -97.75027466 HDATUM: 27 ZMIN: 361.58401489 ZMAX: 413.38400269 ZMEAN: 396.1293335 ZSIGMA: 12.36359215 PMETHOD: 5 QUADDATE: 20001001
0.

Điều này làm cho việc sử dụng các đối số dễ dàng hơn nhiều, vì bạn có thể xác định các loại đầu vào được kiểm tra tự động. Nó cũng tạo ra các thông báo lỗi hay và với

QUADNAME: rockport_colony_SD
RESOLUTION: 10 ULLAT: 43.625 ULLON:
-97.87527466 LRLAT: 43.5 LRLON: -97.75027466 HDATUM: 27 ZMIN: 361.58401489 ZMAX: 413.38400269 ZMEAN: 396.1293335 ZSIGMA: 12.36359215 PMETHOD: 5 QUADDATE: 20001001
1, nó in thông tin sử dụng:

Usage: test.py [OPTIONS] FILENAME

Options:
  --help  Show this message and exit.

Bạn sẽ cần cài đặt click:

# Python2:
pip install click

# Python3:
pip3 install click

10 cuộc thảo luận nữa bạn có thể thấy thú vị

1. Unix cho người mới bắt đầu Câu hỏi & câu trả lời UNIX for Beginners Questions & Answers

Vượt qua một đối số thứ hai

Tôi đang cố gắng vượt qua một đối số thứ hai như vậy: nếu] sau đó xuất arg2 = $ 2 tin nhắn khác "Đối số thứ hai không được chỉ định: sử dụng -$ program_name arg1 arg2" CheckError -e 2 -m "Vui lòng chỉ định nếu đó là lịch sử hoặc hàng tuần ( H hoặc w) trích xuất trong đối số thứ 2 "fi Tuy nhiên, nó luôn luôn đi ... (4 câu trả lời)(4 Replies)

Thảo luận bắt đầu bởi: MIA651

2. Lập trình và kịch bản vỏ Shell Programming and Scripting

** Python: Danh sách vượt qua như đối số và cập nhật theo định nghĩa

Trong mã Python bên dưới .. Bất cứ ai có thể vui lòng cho tôi biết lý do tại sao tên (biến) đang được sửa đổi nếu tôi cập nhật biến Karss trong định nghĩa, def f (kargs): kargs.extend () in ("trong chức năng:" , kargs) name = f (name) in ("hàm bên ngoài:", tên) đầu ra ... (5 trả lời)(5 Replies)

Thảo luận bắt đầu bởi: ScripTscript

3. Lập trình và kịch bản Shell Shell Programming and Scripting

Đối số thông qua

Làm thế nào để truyền ký tự bảng chữ cái như một đối số trong trường hợp và trong nếu khối? Ex: C = $ 1 nếu A-Z]] sau đó lặp lại trường hợp "Bảng chữ cái" $ 1 trong A-Z) Echo "Giá trị là bảng chữ cái" Chỉnh sửa bởi Bakunin: Vui lòng sử dụng thẻ mã. Chúng tôi thực sự có nghĩa là nó. (9 trả lời)(9 Replies)

Thảo luận bắt đầu bởi: Roozo

4. Lập trình và kịch bản vỏ Shell Programming and Scripting

Giúp đối số thông qua

Xin chào, tôi có một kịch bản được lên lịch với Cron và chạy mỗi đêm. Phần cron trông như thế này: 00 20 * * 0,1,2,3,4,5,6/usr/local/bin/sao lưu tbtarm hot xóa vấn đề của tôi là với tham số thứ 3. Ở đâu đó trong tập lệnh, tôi muốn nói với tập lệnh xóa một số tệp nếu lần thứ 3 ... (7 trả lời)(7 Replies)

Thảo luận bắt đầu bởi: Dollypee

5. Lập trình và kịch bản vỏ Shell Programming and Scripting

Vượt qua đối số trong kịch bản?

Xin chào, tôi muốn thực hiện một số chức năng để thực hiện nhiệm vụ sau nếu; sau đó $ text = "data_0" other $ text = $ 1 fi if; Sau đó, $ lines = 45 khác $ lines = $ 2 fi vui lòng đề xuất, cảm ơn (11 câu trả lời)(11 Replies)

Thảo luận bắt đầu bởi: Nrjrasaxena

6. Lập trình Programming

Chuyển đối số cho lệnh trong c

Xin chào tất cả, mới với C và tôi đang cố gắng viết một chương trình có thể chạy lệnh Unix. Muốn có tùy chọn cung cấp cho người dùng khả năng nhập các đối số, ví dụ như "LS" có thể chạy "LS -L". Tôi sẽ đánh giá cao sự giúp đỡ nào. Cảm ơn #include #include #include ... (3 trả lời)(3 Replies)

Thảo luận bắt đầu bởi: Effizy

7. Lập trình và kịch bản vỏ Shell Programming and Scripting

Giúp thông qua đối số và kiểm tra

Xin chào tất cả trước hết, cảm ơn tất cả mọi người đã đọc bởi sự nghi ngờ. Người mới bắt đầu trong kịch bản shell sau đây là những nghi ngờ của tôi, tôi phải chuyển một đối số cho shellscript làm thế nào tôi có thể làm điều đó thứ hai tôi phải kiểm tra đối số và cho thấy lỗi khi không có gì vượt qua thứ ba Tôi phải khớp với đối số chính xác ... (3 câu trả lời)(3 Replies)

Thảo luận bắt đầu bởi: Zeebala1981

8. Lập trình và kịch bản Shell Shell Programming and Scripting

thông qua đối số

Xin chào tất cả, tôi có tập lệnh như bên dưới .. Echo "1) Tùy chọn đầu tiên" Echo "" Echo "2) Tùy chọn thứ hai" Echo "" Echo "*) Vui lòng nhập tùy chọn chính xác" Đọc trường hợp chọn $ chọn trong 1) Echo " tùy chọn đầu tiên được chọn ";; 2) Echo "Tùy chọn thứ hai được chọn" ;; *) Echo "Vui lòng nhập đúng ... (4 trả lời)(4 Replies)

Thảo luận bắt đầu bởi: Shahul

9. Lập trình và kịch bản vỏ Shell Programming and Scripting

Vấn đề trong cuộc tranh luận đi qua

Địa ngục tất cả, tôi có một vấn đề trong cuộc tranh luận. print () {a = $ 1 b = $ 2 c = $ 3 echo $ a echo $ b echo $ c} x = "1 2 3" y = "4 5 6" z = "7 8 9" in $ x $ y $ y z. (4 trả lời)(4 Replies)

Thảo luận bắt đầu bởi: Tsaravanan

10. UNIX cho câu hỏi & câu trả lời của người giả UNIX for Dummies Questions & Answers

chuyển đối số cho một tên tệp

Làm thế nào tôi có thể sử dụng giá trị của một đối số như một tên tệp? Ví dụ: Đối số cho một quy trình là 999. Tôi muốn đầu ra của quy trình được đặt trong một tệp có tên 999. Tôi đã thử sử dụng $$ 1, nhưng chỉ gán một số unigue. Cảm ơn JP (1 trả lời)(1 Reply)

Thảo luận bắt đầu bởi: jpprial

Chúng ta có thể truyền phương thức dưới dạng tham số trong Python không?

Vâng, nó là, chỉ cần sử dụng tên của phương thức, như bạn đã viết. Phương pháp và chức năng là các đối tượng trong Python, giống như bất kỳ điều gì khác, và bạn có thể vượt qua chúng xung quanh cách bạn thực hiện các biến. Trong thực tế, bạn có thể nghĩ về một phương thức (hoặc hàm) như một biến có giá trị là đối tượng mã có thể gọi thực tế., as you have written. Methods and functions are objects in Python, just like anything else, and you can pass them around the way you do variables. In fact, you can think about a method (or function) as a variable whose value is the actual callable code object.

Làm thế nào đọc một tệp từ dòng lệnh trong Python?

Để đọc tệp văn bản bằng Python, bạn làm theo các bước sau: Đầu tiên, hãy mở tệp văn bản để đọc bằng cách sử dụng hàm open ().() Phương thức của đối tượng tệp.Thứ ba, đóng tệp bằng phương thức đóng tệp ().open a text file for reading by using the open() function. Second, read text from the text file using the file read() , readline() , or readlines() method of the file object. Third, close the file using the file close() method.

Chức năng nào cung cấp thông tin về tệp bằng cách cung cấp tên tệp dưới dạng đối số?

Hàm _FindFirst cung cấp thông tin về phiên bản đầu tiên của tên tệp phù hợp với tệp được chỉ định trong đối số FileSpec._findfirst function provides information about the first instance of a file name that matches the file specified in the filespec argument.

Danh sách nào trong Python chứa các đối số được chuyển cho một kịch bản?

Mô -đun SYS hiển thị một mảng có tên Argv bao gồm các mục sau: Argv [0] chứa tên của chương trình Python hiện tại.Argv [1:], phần còn lại của danh sách, chứa bất kỳ và tất cả các đối số dòng lệnh Python được chuyển cho chương trình.argv[1:] , the rest of the list, contains any and all Python command line arguments passed to the program.