Nicht zu überraschen Sie sind wenig auf See mit diesem Projekt. Es erfordert die Kombination von Python, HTML und möglicherweise CSS.
"Jedes einzelne Spektrum wird aus einer umfangreichen Bibliothek gezogen" - In dieser Antwort nehme ich an, dass Sie die interessierenden Spektren in ein lokales Verzeichnis gezogen haben und diese auf einer lokal bereitgestellten Webseite betrachten möchten. Ich gehe auch davon aus, dass alle Png-Dateien die gleiche Größe haben.
Wenn dies richtig ist, was Sie wollen, ist eine Datei mit einfachem HTML zu erstellen, die alle Png-Dateien referenziert und sie in einer einfachen Tabelle auslegt. Dazu muss der Code in das Verzeichnis mit den Bilddateien wechseln, eine Ausgabedatei namens "index.html" öffnen (der Name ist signifikant), glob verwenden, um alle Namen der Spektrenbilder zu erhalten, und eine Schleife über die Namen schreiben die HTML für die Seite. Nachdem Sie die Datei erstellt haben Sie es lokal mit dem Kommandozeilenbefehl dienen kann
python -m http.server 8000
können Sie dann mit dem Hinweis auf den Browser http://localhost:8000
sehen Ihre Seite. Hier
ist eine Beispielimplementierung
from glob import glob
import os
def spectra_imgs(spectra_dir, sp_format):
'''Return an iterable with names of all the files in the spectra_dir
that match the name format sp_format.'''
for gl_name in glob(os.path.join(spectra_dir, sp_format)):
yield os.path.basename(gl_name)
def add_img(sp_img, side, outfile):
''' Add a table item to existing table.
sp_img is the filename of the image
side is "left" or "right"
outfile is an open file handle
Returns None
'''
if side == 'left':
outfile.write('<tr><td class="left_img"><img src="{0}" alt={0}></td>\n"'.format(sp_img))
elif side == 'right':
outfile.write('<td class="right_img"><img src="{0}" alt={0}></td></tr>\n"'.format(sp_img))
else:
raise ValueError("Side must be either left or right, not {0}".format(side))
def sides():
''' Return an iterator that supplies an infinite sequence of "left" and "right".'''
while True:
yield "left"
yield "right"
def write_prefix(outfile):
outfile.write(
'<!DOCTYPE html>\n'
'<html class="spectra_page" lang="en">\n'
'<head>\n'
'<meta charset="UTF-8"/>\n'
'<title>Spectra Comparison Page</title>\n'
'<style>\n'
'table { width: 100%; }\n'
'#left_img { align-items: center }\n'
'#right_img { align-items: center }\n'
'img { height:500px; width:500px }\n' # change to whatever size you want the images displayed at
'</style>\n'
'</head>\n'
'<body>\n')
def write_suffix(outfile):
outfile.write(
'</table>\n'
'</body>\n'
'</html>\n'
)
def write_spectra_page(spectra_dir):
''' Write an index.html file with all the spectra images shown. '''
with open(os.join(spectra_dir, "index.html")) as outfile:
write_prefix(outfile)
for side, sp_img in zip(sides, spectra_imgs(spectra_dir,'sp*.png'):
add_img(sp_img, side, outfile)
if side == "left":
# need to close the table row
outfile.write('</tr>\n')
write_suffix(outfile)
https://i.stack.imgur.com/dmOz5.png Hier ist die Befestigung leid. – l1ve4science