Báo cáo Python

Tự động hóa sổ ghi chép được tạo bằng khung

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 mã nguồn mở. Chúng đạt được với 4 dòng mã. Hệ thống báo cáo có thể chạy cục bộ. Tuy nhiên, tôi sẽ triển khai nó lên đám mây (Heroku) trong bài viết này. Ứng dụng web có sẵn trực tuyến tại các báo cáo tự động-pdf. herokuapp. com. Tất cả mã đều có trên GitHub tại github. com/pplonski/automated-pdf-reports-python. Bản demo của ứng dụng web báo cáo bên dưới

Báo cáo Python

Email có báo cáo PDF trong tệp đính kèm (nó được gửi tự động)

Báo cáo Python

Tôi hy vọng rằng bài viết này sẽ giúp bạn xây dựng hệ thống báo cáo tự động của riêng bạn trong Python. Trong trường hợp có bất kỳ câu hỏi xin vui lòng liên hệ với tôi với mẫu sau. 😊

Thiết lập môi trường cục bộ

Hãy bắt đầu với việc tạo một dự án GitHub (vui lòng tạo một kho lưu trữ mới trên trang web GitHub). Tất cả mã của tôi là trên github. com/pplonski/automated-pdf-reports-python. Bước đầu tiên là sao chép dự án

git clone [email protected]:pplonski/automated-pdf-reports-python.git

Bước tiếp theo là tạo một tệp

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
7 với các gói Python mà chúng tôi sẽ sử dụng

mljar-mercury
yfinance
mplfinance

Chúng tôi sẽ cần

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
7 khi triển khai sổ ghi chép lên đám mây. (Đừng lo lắng, nó sẽ dễ thôi). Bước tiếp theo là tạo một môi trường ảo

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
9 là tên của môi trường ảo. Bước cuối cùng là đặt môi trường ảo mới của chúng tôi làm hạt nhân Jupyter, vì vậy chúng tôi có thể sử dụng nó trong Notebook Jupyter khi tạo sổ ghi chép mới

python -m ipykernel install --user --name reportenv

sổ tay Python

Môi trường đã sẵn sàng. Chúng ta có thể bắt đầu làm việc trên sổ ghi chép Python. Sổ ghi chép sẽ lấy dữ liệu chứng khoán mới nhất với gói

python -m ipykernel install --user --name reportenv
0. Nó đang sử dụng Yahoo Finance API. Tiếp theo, sổ ghi chép sẽ hiển thị danh sách các tin tức gần đây, vẽ biểu đồ tài chính với
python -m ipykernel install --user --name reportenv
1 và hiển thị phân tích

Hãy bắt đầu Jupyter Notebook và tạo một sổ ghi chép mới

python -m ipykernel install --user --name reportenv
2. Hãy nhớ chọn hạt nhân
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
9

# start jupyter notebook
jupyter notebook

Như thường lệ, bước đầu tiên là nhập tất cả các gói cần thiết (tôi ước một ngày nào đó tôi có thể tự động hóa việc này)

import yfinance as yf
import mplfinance as mpf
from IPython.display import Markdown as md
from datetime import datetime

Dữ liệu trình bày trong sổ ghi chép sẽ được kiểm soát với hai biến

ticker = "TSLA"
period = "3mo"

Chúng ta sẽ sử dụng biến

python -m ipykernel install --user --name reportenv
4 để chọn cổ phiếu.
python -m ipykernel install --user --name reportenv
5 là một biến kiểm soát độ dài lịch sử. Nó sẽ được sử dụng trực tiếp trong gói
python -m ipykernel install --user --name reportenv
0

Hãy bắt đầu với một tiêu đề tốt. Nó sẽ hiển thị

python -m ipykernel install --user --name reportenv
4 và một ngày hiện tại. Hiển thị tiêu đề sẽ hơi phức tạp. Tôi sẽ cắt một chuỗi có tiêu đề và sử dụng
python -m ipykernel install --user --name reportenv
8 để hiển thị nó dưới dạng Markdown

md(f"# {ticker} Report {datetime.now().strftime('%m-%d-%Y')}")

Xin lưu ý rằng ô vẫn là một loại mã và tôi đang sử dụng

python -m ipykernel install --user --name reportenv
9 để tạo tiêu đề - Cú pháp đánh dấu bên trong một chuỗi

Báo cáo Python

Tìm nạp dữ liệu chứng khoán được thực hiện trong hai dòng mã Python

d = yf.Ticker(ticker)
history = d.history(period=period)

Nó không phải là tuyệt vời? . Hãy xây dựng chuỗi với danh sách tin tức

content = ""
for n in d.news:
    content += f""" - [{n["title"]}]({n["link"]}) by {n["publisher"]}\n"""

Hiển thị chuỗi dưới dạng Markdown trong Jupyter Notebook

mljar-mercury
yfinance
mplfinance
0

Báo cáo Python

Hãy vẽ một số dữ liệu. Tạo biểu đồ tài chính với

python -m ipykernel install --user --name reportenv
1 thật dễ dàng

mljar-mercury
yfinance
mplfinance
1

Báo cáo Python

python -m ipykernel install --user --name reportenv
0 cung cấp phân tích và chi tiết tài chính cho cổ phiếu. Chúng có thể dễ dàng truy cập dưới dạng Pandas DataFrames

mljar-mercury
yfinance
mplfinance
2

Báo cáo Python

mljar-mercury
yfinance
mplfinance
3

Báo cáo Python

OK, sổ ghi chép báo cáo tài chính đã sẵn sàng. Nó sẽ trông giống như trong hình dưới đây

Báo cáo Python

Tất cả mã đã được tạo, tin xấu là chúng tôi không thể chia sẻ báo cáo ở dạng hiện tại. Mã phải được ẩn và sổ ghi chép phải được chuyển đổi thành PDF (Định dạng Tài liệu Di động) để có thể mở trên bất kỳ hệ điều hành nào. Tin tốt là nó có thể được thực hiện dễ dàng với khung công tác

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5

Chia sẻ sổ tay với Mercury

Hãy sử dụng khung công tác

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 để làm cho sổ ghi chép của chúng ta có thể chia sẻ được

  • làm cho nó tương tác với
    python -m ipykernel install --user --name reportenv
    
    4 và
    python -m ipykernel install --user --name reportenv
    
    5 dưới dạng các vật dụng được chọn,
  • ẩn mã để không sợ các cổ đông không có kỹ thuật,
  • dễ dàng chuyển đổi sang định dạng PDF,
  • lên lịch thực hiện hàng ngày với thông báo qua email và báo cáo PDF trong tệp đính kèm

Các tính năng trên có thể đạt được bằng cách thêm một ô RAW vào đầu sổ ghi chép với cấu hình YAML

mljar-mercury
yfinance
mplfinance
4

YAML chứa

  • # start jupyter notebook
    jupyter notebook
    
    7 và
    # start jupyter notebook
    jupyter notebook
    
    8 của báo cáo,
  • Tham số
    # start jupyter notebook
    jupyter notebook
    
    9 kiểm soát khoảng thời gian mà sổ ghi chép sẽ được thực thi, nó được đặt bằng chuỗi crontab,
  • Tham số
    import yfinance as yf
    import mplfinance as mpf
    from IPython.display import Markdown as md
    from datetime import datetime
    
    0 xác định danh sách các địa chỉ email sẽ nhận được thông báo sau khi thực hiện thành công sổ ghi chép, tham số
    import yfinance as yf
    import mplfinance as mpf
    from IPython.display import Markdown as md
    from datetime import datetime
    
    1 xác định định dạng của báo cáo,
  • import yfinance as yf
    import mplfinance as mpf
    from IPython.display import Markdown as md
    from datetime import datetime
    
    2 giấu mã trong cuốn sổ,
  • import yfinance as yf
    import mplfinance as mpf
    from IPython.display import Markdown as md
    from datetime import datetime
    
    3 thêm hai tiện ích được chọn được kết nối trực tiếp với các biến
    python -m ipykernel install --user --name reportenv
    
    4 và
    python -m ipykernel install --user --name reportenv
    
    5. Bạn có thể kiểm tra thêm các loại widget trong tài liệu của Mercury

Sổ ghi chép có tiêu đề YAML sẽ giống như trong hình bên dưới

Báo cáo Python

Để kiểm tra xem nó hoạt động như thế nào tại địa phương, bạn có thể chạy

mljar-mercury
yfinance
mplfinance
5

Nó sẽ khởi động một máy chủ cục bộ. Vui lòng mở trình duyệt web có địa chỉ

import yfinance as yf
import mplfinance as mpf
from IPython.display import Markdown as md
from datetime import datetime
6, bạn sẽ thấy dịch vụ web
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 đang chạy. Bạn có thể điều chỉnh các giá trị tiện ích con và thực thi sổ ghi chép với các tham số mới bằng nút
import yfinance as yf
import mplfinance as mpf
from IPython.display import Markdown as md
from datetime import datetime
8

Báo cáo Python

triển khai

Chúng tôi sẽ triển khai

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 trong máy chủ đám mây để chạy tự động hàng ngày. Tôi sẽ sử dụng Heroku cho mục đích demo. Bạn có thể xem hướng dẫn triển khai trên các đám mây khác trong tài liệu. Tôi đang sử dụng công cụ Heroku CLI

Hãy tạo một ứng dụng Heroku mới

mljar-mercury
yfinance
mplfinance
6

Bước tiếp theo là thêm

ticker = "TSLA"
period = "3mo"
0 cấu hình cách Heroku thực thi mã của chúng tôi

mljar-mercury
yfinance
mplfinance
7

Chúng tôi cần đẩy tất cả các tệp vào kho lưu trữ GitHub

mljar-mercury
yfinance
mplfinance
8

Triển khai lên đám mây được thực hiện bằng một lệnh

mljar-mercury
yfinance
mplfinance
9

Vui lòng đợi một lúc và bạn sẽ thấy ứng dụng web

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 đang chạy. Ứng dụng của tôi đang chạy tại báo cáo tự động-pdf. herokuapp. com

Chúng tôi cần định cấu hình cài đặt email để cho phép gửi thông báo. Ngoài ra, chúng tôi sẽ đặt

ticker = "TSLA"
period = "3mo"
2 để đặt thông báo qua email theo múi giờ của tôi. Chúng ta cần xác định các biến môi trường sau

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
0

Các giá trị ví dụ có thể là

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
1

Tôi đang đặt các biến môi trường trong tab

ticker = "TSLA"
period = "3mo"
3 trong bảng điều khiển Heroku, bên dưới là ảnh chụp màn hình

Báo cáo Python

Xuất sổ ghi chép sang PDF yêu cầu gói xây dựng Puppeteer

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
2

Vui lòng thêm nó vào bảng điều khiển Heroku (nó sẽ có sẵn bên dưới các vars cấu hình)

Báo cáo Python

OK, chúng tôi sẽ cần triển khai lại ứng dụng để xem các thay đổi. Điều này có thể được thực hiện bằng cách cập nhật sổ ghi chép. Trong trường hợp của tôi, tôi sẽ thêm một thông báo

ticker = "TSLA"
period = "3mo"
4 vào ứng dụng web
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5. Nó sẽ là một tin nhắn tùy chỉnh có sẵn trong giao diện trang chủ. Bạn có thể đọc thêm về thông báo chào mừng trong tài liệu

Việc triển khai ứng dụng cập nhật có thể được thực hiện với

mljar-mercury
yfinance
mplfinance
9

Đó là tất cả. 😊 Bây giờ, hãy chờ báo cáo PDF tự động. Chúng sẽ được gửi đến địa chỉ email trong tệp đính kèm

Báo cáo Python

Tóm lược

Jupyter Notebook cung cấp trình soạn thảo WYSIWYG để xây dựng báo cáo. Khung

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 thực hiện thêm công việc tạo các tiện ích tương tác, ẩn mã, lập lịch, xuất sang PDF, gửi thông báo qua email. Cả hai công cụ tạo nên sự kết hợp hoàn hảo để tạo hệ thống báo cáo tự động

  • Mã Python được sử dụng trong bài viết có sẵn tại github. com/pplonski/automated-pdf-reports-python
  • Ứng dụng web dành cho sổ ghi chép đã lên lịch và thông báo qua email với sổ ghi chép PDF có sẵn trực tuyến trên các báo cáo pdf tự động. herokuapp. com

Nếu bạn có bất kỳ câu hỏi nào hoặc cần trợ giúp, vui lòng đăng ký nhận bản tin bên dưới. Trong biểu mẫu, bạn có thể để lại phản hồi, nhận xét hoặc câu hỏi. Chúng tôi cố gắng hết sức để phản hồi nhanh chóng. )

Làm cách nào để tạo báo cáo bằng Python?

Với Jinja2 , chúng ta có thể đặt các trình giữ chỗ đặc biệt trong mẫu để cho phép viết mã tương tự như cú pháp Python; . .
Tạo một đối tượng Môi trường mẫu, đối tượng này sẽ được sử dụng để tải các mẫu. .
Tải mẫu từ Môi trường. .
Kết xuất mẫu với các biến

Làm cách nào để tạo báo cáo HTML bằng Python?

Cách tạo báo cáo HTML bằng Python .
Cài đặt 'Aspose. Từ cho Python thông qua. NET'
Thêm tham chiếu thư viện (nhập thư viện) vào dự án Python của bạn
Tạo một mẫu HTML được đánh dấu bằng cú pháp dựa trên LINQ
Tải tài liệu mẫu HTML
Tải dữ liệu của bạn từ nguồn dữ liệu. tệp, cơ sở dữ liệu hoặc đối tượng tùy chỉnh

Làm cách nào để tạo HTML bằng Python?

Bạn có thể tạo và lưu tệp HTML với sự trợ giúp của một vài bước đơn giản. .
Sử dụng hàm tệp open() để tạo tệp HTML
Thêm dữ liệu đầu vào ở định dạng HTML vào tệp với sự trợ giúp của hàm write()
Cuối cùng, lưu và đóng tệp

Làm cách nào để tạo báo cáo trong Selenium Python?

Để tạo báo cáo HTML cho thử nghiệm Selenium, chúng ta phải cài đặt plugin bằng lệnh. pip cài đặt pytest-html . Để tạo báo cáo, chúng tôi phải di chuyển từ thư mục hiện tại sang thư mục của tệp Pytest mà chúng tôi muốn thực thi. Sau đó chạy lệnh. pytest --html=báo cáo.