Tạo mã python từ python

  1. DZone
  2. mã hóa
  3. ngôn ngữ
  4. Trình tạo mã đơn giản sử dụng tính năng tuyệt vời của Python

Trình tạo mã đơn giản sử dụng tính năng tuyệt vời của Python

Tạo mã python từ python
qua

Bipin Patwardhan

·

tháng ba. 20, 22 · Hướng dẫn

Thích (3)

Bình luận

Tiết kiệm

tiếng riu ríu

5. 60 nghìn Lượt xem

Tham gia cộng đồng DZone và có được trải nghiệm thành viên đầy đủ

Tham gia miễn phí

Đối với dự án gần đây nhất của tôi, tôi đã viết một vài trình tạo mã - ba biến thể của trình tạo ứng dụng Python/Spark và ít nhất bốn biến thể của trình tạo Airflow DAG. Các biến thể khác nhau là cần thiết khi các yêu cầu và độ phức tạp của đầu ra phát triển trong một khoảng thời gian. Sử dụng trải nghiệm này, tôi sẽ chỉ cho bạn cách bắt đầu hành trình viết trình tạo mã bằng một tính năng thú vị của Python.

Với mục đích của bài viết này, tôi sẽ sử dụng chương trình Python để tạo ứng dụng Python/Spark cơ bản để lấy và hiển thị 10 hàng của bảng đã chỉ định. Ứng dụng sẽ được tạo như bên dưới

con trăn

 

import os
import sys
import pyspark
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession

spark_session = SparkSession.builder.appName("generator").getOrCreate()
try:
    df = spark_session.sql("select * from user_names")
    df.show(10, False)
except Exception as e:
    print("Got an error {er}".format(er=str(e)))
spark_session.stop()

Phiên bản 1

Phương pháp đơn giản nhất để tạo ứng dụng này là sử dụng các câu lệnh in như bên dưới

con trăn

 

import os
import sys

print("import os")
print("import sys")
print("import pyspark")
print("from pyspark import SparkContext")
print("from pyspark.sql import SQLContext")
print("from pyspark.sql import SparkSession")
print("")
print("spark_session = SparkSession.builder.appName(\"generator\").getOrCreate()")
print("try:")
print("    df = spark_session.sql(\"select * from user_names\")")
print("    df.show(10, False)")
print("except Exception as e:")
print("    print(\"Got an error {er}\".format(er=str(e)))")
print("")

Phiên bản 2

Điều gì sẽ xảy ra nếu chúng tôi muốn cho phép người dùng cung cấp tên của ứng dụng và tên của bảng để có thể kết hợp chúng trong ứng dụng? . Trình tạo mã của chúng tôi phải được sửa đổi như bên dưới

con trăn

 

import os
import sys

app_name = sys.argv[1]
table_name = sys.argv[2]

print("import os")
print("import sys")
print("import pyspark")
print("from pyspark import SparkContext")
print("from pyspark.sql import SQLContext")
print("from pyspark.sql import SparkSession")
print("")
print("spark_session = SparkSession.builder.appName(\"" + app_name + "\").getOrCreate()")
print("try:")
print("    df = spark_session.sql(\"select * from " + table_name + "\")")
print("    df.show(10, False)")
print("except Exception as e:")
print("    print(\"Got an error {er}\".format(er=str(e)))")
print("")

Phiên bản 3

Trong phiên bản 2, bạn có thể biết phần nào của mã là trình tạo mã và phần nào của mã là mã được tạo không? . Hãy tưởng tượng mã sẽ trông như thế nào nếu chúng ta phải tạo một chương trình rất lớn và phức tạp. Như bạn có thể tưởng tượng, trình tạo mã sẽ không dễ bảo trì.

Hãy để chúng tôi đơn giản hóa trình tạo mã. Python cho phép chúng ta định nghĩa các khối văn bản bên trong ba dấu nháy kép hoặc ba dấu nháy đơn. Văn bản không chỉ có thể trải rộng trên nhiều hàng mà còn có thể chứa các trình giữ chỗ có thể thay đổi. Giữ chỗ biến là gì? . Và khi nào một khối văn bản được đánh giá? .

Trình tạo mã của chúng tôi trông như thế nào?

con trăn

 

import os
import sys

template_application = """ # note the triple quotes that indicate start of block
import os
import sys
import pyspark
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession

spark_session = SparkSession.builder.appName("{app_name}").getOrCreate()
try:
    df = spark_session.sql("select * from {table_name}")
    df.show(10, False)
except Exception as e:
    print("Got an error {{er}}".format(er=str(e)))
spark_session.stop()
""" # note the triple quote that indicate end of block

app_name = sys.argv[1]
table_name = sys.argv[2]
print(template_application.format(app_name=app_name, table_name=table_name))

Chúng tôi đang xác định tất cả mã của mình trong biến có tên 'template_application'. Biến cũng chứa các trình giữ chỗ biến cho tên ứng dụng (app_name) và tên bảng (table_name). Chúng ta phải cẩn thận để cung cấp các giá trị cho các biến này. Chúng tôi làm điều đó trong câu lệnh in, nơi chúng tôi cung cấp các giá trị thực bằng cách sử dụng từ khóa định dạng.

Lưu ý quan trọng.

Bạn sẽ lưu ý rằng chúng tôi đã đặt biến 'er' bên trong dấu ngoặc nhọn kép. Điều này là do chúng tôi muốn biến vẫn là một biến trong mã được tạo. Bằng cách sử dụng dấu ngoặc nhọn kép, Python sẽ loại bỏ một bộ dấu ngoặc nhọn trong quá trình đánh giá câu lệnh định dạng, nhưng sẽ giữ lại bộ thứ hai. Bộ thứ hai sau đó xuất hiện dưới dạng một biến trong mã được tạo.

Chúc bạn viết mã vui vẻ.

Ứng dụng Python (ngôn ngữ) ứng dụng

Ý kiến ​​​​của những người đóng góp DZone là của riêng họ

Phổ biến trên DZone

  • Trí tuệ nhân tạo (AI) giải cứu an ninh mạng
  • Khả năng quan sát CI có thể củng cố quy trình DevSecOps của bạn như thế nào?
  • Có gì mới trong. Mạng 7?
  • Thử nghiệm khung HTTP hiệu suất cao


Bình luận

Tài nguyên đối tác

Bạn có thể biến mã Python thành một ứng dụng không?

Python là ngôn ngữ lập trình mã nguồn mở rất phù hợp để tạo ứng dụng web và thiết bị di động .

Python có chuyển đổi thành mã máy không?

Python không chuyển đổi mã của nó thành mã máy , điều mà phần cứng có thể hiểu được. Nó thực sự chuyển đổi nó thành một thứ gọi là mã byte. Vì vậy, trong python, quá trình biên dịch xảy ra, nhưng nó không phải là ngôn ngữ máy. Đó là mã byte (.

Mã hóa răng cưa là gì?

Cog là công cụ tạo mã đơn giản được viết bằng Python . Chúng tôi sử dụng nó hoặc kết quả của nó mỗi ngày trong quá trình sản xuất Kubi. Kubi là một hệ thống cộng tác được thể hiện trong một số sản phẩm khác nhau.

Bạn thực sự có thể xây dựng cái gì với Python?

Lập trình ứng dụng . Ngôn ngữ có mục đích chung có thể được sử dụng để đọc và tạo thư mục tệp, tạo GUI và API, v.v. Cho dù đó là ứng dụng chuỗi khối, ứng dụng âm thanh và video hay ứng dụng máy học, bạn đều có thể xây dựng tất cả chúng bằng Python. all kinds of applications using Python. The general-purpose language can be used to read and create file directories, create GUIs and APIs, and more. Whether it's blockchain applications, audio and video apps, or machine learning applications, you can build them all with Python.