Tôi có mã sau trong tệp .py:
import re
regex = re.compile[
r"""ULLAT:\ [?P-?[\d.]+].*?
ULLON:\ [?P-?[\d.]+].*?
LRLAT:\ [?P-?[\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: MIA6512. 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: ScripTscript3. 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: Roozo4. 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: Dollypee5. 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: Nrjrasaxena6. 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: Effizy7. 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: Zeebala19818. 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: Shahul9. 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: Tsaravanan10. 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