Hướng dẫn how to run python script with input file - cách chạy tập lệnh python với tệp đầu vào

Gửi đầu ra đến một tệp rất giống với việc lấy đầu vào từ một tệp.

Bạn mở một tệp để viết theo cách bạn làm để đọc, ngoại trừ với chế độ 'w' thay vì chế độ 'r'.

Bạn ghi vào một tệp bằng cách gọi write trên đó giống như cách bạn đọc bằng cách gọi read hoặc

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
0.

Đây là tất cả được giải thích trong phần đọc và viết các tập tin của hướng dẫn.

Vì vậy, nếu mã hiện tại của bạn trông như thế này:

with open('input.txt', 'r') as f:
    while True:
        line = f.readline()
        if not line:
            break
        print(line)

Bạn chỉ cần làm điều này:

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)

Nếu bạn đang tìm cách cho phép người dùng truyền tên tệp trên dòng lệnh, hãy sử dụng

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
1 để lấy tên tệp hoặc sử dụng
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
2 để phân tích đối số dòng lệnh phức tạp hơn.

Ví dụ: bạn có thể thay đổi dòng đầu tiên thành điều này:

import sys
with open(sys.argv[1], 'r') as fin, open(sys.argv[2], 'w') as fout:

Bây giờ, bạn có thể chạy chương trình như thế này:

python script.py input_file.txt outputfile.txt

Tôi có một tệp văn bản. Nhưng tôi không muốn nhập tệp đó vào tập lệnh Python của mình trực tiếp. Tôi muốn chạy tập lệnh Python của mình từ dòng lệnh với đối số đó là tệp văn bản của tôi. Dòng lệnh mà tôi muốn là: $ python.exe script.py c: /user/text_file.txt.

Những gì tôi đã thử:

<pre>
import sys

def main():
    infile = sys.argv[0]
    Array = ["f1", "f2", "f3", "f4"]
    with open(infile, "r") as input_file:
    	output_list = []
    	for rec in input_file.read().splitlines():
    		rec = rec[:-3]
    		FBlist = [rec[i:i+2] for i in range(0, len(rec), 2)]
    		output_list.append(FBlist)
    		print(output_list)



main()

Ở đây, một hướng dẫn của một trang web tôi đã xây dựng sẽ phân tích tình cảm văn bản một cách nhanh chóng

Ảnh của Timothy Dykes trên unplash

Tất cả các nhà khoa học dữ liệu đều biết máy tính tốt như thế nào trong việc phân tích văn bản, nhưng hầu hết những người khác đều không ủng hộ. Vì vậy, là một người đàn ông của mọi người, tôi nghĩ rằng tôi đã cung cấp cho họ những gì họ không biết họ cần - một trang web nơi họ có thể phân tích ebook của riêng họ.

Bạn có thể đọc về tính hữu ích của trang web ở đây. Nhưng bài viết này nhằm mục đích nhiều hơn vào tất cả các bạn rất nhiều và tập trung vào cách chạy các tập lệnh Python trên đầu vào của người dùng và tạo ra một đầu ra - mà không lưu đầu vào ở bất cứ đâu.

Điều này rất hữu ích vì nó hoàn toàn tự động, miễn là các máy chủ không bị hỏng (chúng có thể - tôi không biết) thì điều này chỉ nên tự chạy. Không cần bảo trì.

Bối cảnh

Vì vậy, mục đích của trò chơi là sản xuất một trang web lấy đầu vào của người dùng, chạy các tập lệnh Python trên chúng và sau đó trả lại chúng cho người dùng một cách có thể sử dụng được. Hóa ra nó thực sự không dễ dàng chạy các kịch bản Python trực tuyến và tôi đã không tìm thấy nhiều sự giúp đỡ trực tuyến - nhưng dưới đây là tất cả những gì tôi tìm thấy.

Cách tiếp cận tốt nhất tôi tìm thấy là sử dụng bình - một khung web vi mô được viết bằng Python. Bình, cùng với Django, thường được sử dụng trong phát triển web. Và vì chúng được viết bằng Python, nên rất dễ dàng để tích hợp các tập lệnh Python vào định tuyến của bạn.

Tôi đã viết một tác phẩm khá phổ biến về cách hiển thị các sơ đồ matplotlib và các khung dữ liệu panda trước đó - nếu điều đó nghe có vẻ hữu ích thì vui lòng kiểm tra nó.

Vì vậy, như một lời nhắc, mục tiêu ở đây là lấy đầu vào của người dùng từ biểu mẫu HTML, hãy chạy tập lệnh Python trên đó và đưa ra kết quả trong một quy trình hoàn toàn tự động.

Cài đặt

Việc thiết lập cho dự án này là khá đơn giản. Trước tiên chúng tôi phải nhập tất cả các gói yêu cầu từ bình, có thể thấy bên dưới (dòng 2). Sau đó, chúng tôi sẽ khởi tạo ứng dụng (dòng 5) - Bạn có thể gọi nó là bất cứ điều gì bạn muốn nhưng đó là một quy ước để sử dụng Dunder ‘Tên. Chỉ cần don gọi nó là bình vì điều này sẽ mâu thuẫn với chính Flask. Và cuối cùng, chúng tôi sử dụng bộ trang trí tuyến đường để nói cho Flask URL nên gọi chức năng của chúng tôi. Trong trường hợp này, nó chỉ đơn giản là ‘/ - vì vậy trang ban đầu của chúng tôi.Line 2). We then initialise the app (line 5) — you can call it whatever you want but it's a convention to use dunder ‘name’. Just don’t call it Flask as this will conflict with Flask itself. And finally, we use the route decorator to tell Flask which URL should call our function. In this case, it's simply ‘/’ — so our initial page.

Giữ gỡ lỗi = true trên để tải lại tự động khi phát triển. Nhưng don không quên loại bỏ điều này khi bạn đến triển khai.

Có thể thấy, chúng tôi đã trả lại chức năng ‘render_template, điều cần thiết cho bất kỳ ứng dụng nào. Nó trả về một tệp HTML từ thư mục mẫu (bình yêu cầu một thư mục mẫu cụ thể) và hiển thị nó trên trang được chỉ định. Vì vậy, ở đây, HTML chúng ta sẽ cần.

Có thể thấy, đó là một trang HTML khá đơn giản như bạn đã thấy một trăm lần trước đó. Tuy nhiên, dòng 1115 là những người quan tâm đến chúng tôi. Trong dòng 11, chúng tôi chỉ định bắt đầu biểu mẫu của chúng tôi và đóng nó ở dòng 15. Trong biểu mẫu, chúng tôi có ba thẻ DIV (dòng 12,13, & 14). Dòng 12 chỉ đơn giản là tiêu đề biểu mẫu, không có gì khác hơn văn bản, dòng 13 là lựa chọn tệp và dòng 14 là nút gửi. Như bạn có thể thấy ở đây, chúng tôi đã chỉ định loại đầu vào dưới dạng tệp tệp và các tệp .txt đã nêu cụ thể.Lines 11–15 are the ones of interest to us, however. In line 11 we specify the beginning of our form and close it at line 15. Within the form, we have three div tags (lines 12,13, & 14). Line 12 is simply the form title, which is nothing more than text, line 13 is the file selection and line 14 is the submit button. As you can see here, we’ve specified the input type as “file” and specifically stated .txt files.

Nó rất quan trọng ở đây đối với trạng thái enctype = ‘mula/form-data, vì vậy bình biết cách mã hóa đầu vào. Thậm chí quan trọng hơn là don không quên phương thức trạng thái = Post Post, vì vậy Flask biết yêu cầu thông tin được lưu trữ trong biểu mẫu.

Chạy các tập lệnh Python trên các đầu vào.

Bây giờ chúng tôi có những người trần trụi của trang web của chúng tôi lên và chạy, làm thế nào để chúng tôi chạy các tập lệnh Python trên các đầu vào và sau đó hiển thị kết quả của người dùng?

Những gì chúng ta cần làm là, tạo một nhà trang trí khác chỉ chạy khi nhận được yêu cầu POST.

Đó chính xác là những gì dưới đây làm. Bạn có thể bật nó vào trực tiếp dưới trang trí tuyến đầu.

Vì vậy, ở đây, khi người dùng nhấp vào nút gửi, chức năng này được kích hoạt khi nó được kích hoạt khi các phương thức bài được sử dụng. Dòng 5 sau đó sử dụng thư viện yêu cầu để chọn tệp được nhập. Sau đó, bạn có thể chỉ cần chạy các tập lệnh Python của bạn trên biến này như bình thường trong Python. Khi bạn đã thực hiện thao tác, bạn có thể trả lại các biến cho người dùng trong một trong nhiều thời trang. Bạn có thể sử dụng phương thức phản hồi như tôi đã làm ở trên hoặc bạn có thể chuyển nó đến một biến và xuất trực tiếp vào mẫu HTML khác bằng cách sử dụng Render_template (). Các khả năng là vô tận.Line 5 then uses the request library to select the inputted file. You can then simply run your python scripts on this variable as you normally would in Python. Once you have done the manipulation you can then return the variables to the user in one of many fashions. You can use the Response method as I did above, or you could pass it to a variable and output it directly in another HTML template using render_template() again. The possibilities are endless.

Bạn có thể lưu trữ trang web của bạn theo nhiều cách, nhưng tôi thích Pythonany ở nơi. Một hướng dẫn về cách làm nó có thể được nhìn thấy ở cuối bài viết của tôi ở đây.

Như đã đề cập, bạn có thể thấy một ví dụ làm việc tại www.eBookanalyzer.com.

Tôi chắc chắn không có nhà phát triển web nào xin lỗi sự xấu xí.

Ngoài ra xin vui lòng cho tôi biết nếu có bất kỳ lỗi nào hoặc bạn có thể thấy bất kỳ cải tiến hoặc giải pháp thanh lịch hơn.

If I’ve inspired you to join medium I would be really grateful if you did it through this link — it will help to support me to write better content in the future.If you want to learn more about data science, become a certified data scientist, or land a job in data science, then checkout 365 data science through my affiliate link.

Nếu bạn thích điều này, đây là một số bài viết tương tự khác tôi đã viết:

Cheers,

James

Làm cách nào để chạy đầu vào trong Python?

Đầu vào Sử dụng hàm input () mà bạn gọi chức năng này để thông báo cho chương trình dừng và chờ người dùng chính trong dữ liệu. Trong Python 2, bạn có một hàm tích hợp Raw_Input (), trong khi trong Python 3, bạn có đầu vào (). Chương trình sẽ tiếp tục khi người dùng nhấn phím Enter hoặc Return. You call this function to tell the program to stop and wait for the user to key in the data. In Python 2, you have a built-in function raw_input() , whereas in Python 3, you have input() . The program will resume once the user presses the ENTER or RETURN key.

Làm thế nào để bạn truyền đầu vào trong tập lệnh Python?

Cách truyền thông tin đến tập lệnh Python bằng lệnh sys.argv bằng cách mã hóa các biến đầu vào trong sổ ghi chép Jupyter hoặc thông qua việc sử dụng hàm đầu vào () tương tác.using the sys. argv command by hard-coding the input variables in Jupyter Notebook or through the interactive use of the input() function.

Làm thế nào để bạn nhập dữ liệu vào một tệp python?

inputFileName = input ("Nhập tên của tệp đầu vào:")Biến (Tệp là khóa bị khóa để viết). 1. Open the file and associate the file with a file variable (file is “locked” for writing).

Làm cách nào để chạy kịch bản trong tập lệnh Python?

Các bước để chạy một kịch bản Python từ một kịch bản khác..
Bước 1: Đặt các tập lệnh Python vào cùng một thư mục.Để bắt đầu, hãy đặt các tập lệnh Python của bạn vào cùng một thư mục.....
Bước 2: Thêm cú pháp.Tiếp theo, thêm cú pháp vào từng tập lệnh của bạn.....
Bước 3: Chạy một kịch bản Python từ một bản khác ..