Python: объединение нескольких скриптов в один скрипт - PullRequest
0 голосов
/ 01 мая 2020

У меня есть три сценария: первый генерирует PDF со случайным предложением. Второй обрезает PDF. Третий печатает обрезанный pdf.

Как мне объединить три сценария в один сценарий оболочки?

Первый сценарий:

#!/usr/bin/env python 3

import fpdf
import random

def GetRandomFontFromFile(filename):
  with open(filename,"r") as f:
    lines = f.read().split("\n")
  return lines[random.randint(0, len(lines)-1)]

randomfont = GetRandomFontFromFile("fontlist.txt")

def GetRandomLineFromFile(filename):
  with open(filename,"r") as f:
    lines = f.read().split("\n")
  return lines[random.randint(0, len(lines)-1)]

line = GetRandomLineFromFile("sentenceslist.txt")

pdf = fpdf.FPDF('P','mm',(80,120))
pdf.add_page()
pdf.add_font('', '', (randomfont), uni=True)
pdf.set_font('','',size=12)
pdf.multi_cell(0,4.5,(line))
pdf.output('output-not-cropped.pdf', 'F')

Второй сценарий:

pdfcrop --margins '0 0 24 0' output-not-cropped.pdf output-cropped.pdf

Третий сценарий:

lp -d <printer> output-cropped.pdf

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Если вы просто хотите запустить эти 3 скрипта, вы можете написать те же команды, которые вы используете для запуска их в вашем семестре. Это может быть что-то вроде этого:

#!/bin/bash

python3 script1.py && python3 script2.py && python3 script3.py
0 голосов
/ 01 мая 2020

Вы можете создать простой bash скрипт (назовем его executor.sh):

executor. sh

#!/usr/bin/env bash

python3 script1.py
pdfcrop --margins '0 0 24 0' output-not-cropped.pdf output-cropped.pdf
lp -d <printer> output-cropped.pdf

и запустить его : ./executor.sh

...