Forum >> Principianti >> Salve a tutti, ho un problema di compilazione

Pagina: 1

Salve a tutti, spero di non aver sbagliato sezione.



Ho un problema con la compilazione di un file, non ho mai studiato il python, magari per mia inesperienza non riesco a procedere con questa compilazione, devo portare il file index.html in html.h, utilizzando uno script py...




Lo script py è il seguente


#!/usr/bin/env python




# Run this script like this:

# ./html2h.py webroot > html.h

#

# Note that this is untested on Windows/OSX!




import os

import sys

import argparse




parser = argparse.ArgumentParser (description = 'Convert a website to be put into flash memory for use with Webbino')

parser.add_argument ('webroot', metavar = "WEBROOT", help = "Path to website root directory")

parser.add_argument ('--nostrip', "-n", action = 'store_true', default = False,

                     help = "Do not strip CR/LF/TABs")




args = parser.parse_args ()




# The above will raise an error if webroot was not specified, so we can

# assume it was

os.chdir (args.webroot)




# https://www.safaribooksonline.com/library/view/python-cookbook/0596001673/ch04s16.html

def splitall(path):

    allparts = []

    while 1:

        parts = os.path.split(path)

        if parts0 == path:  # sentinel for absolute paths

            allparts.insert(0, parts0)

            break

        elif parts1 == path: # sentinel for relative paths

            allparts.insert(0, parts1)

            break

        else:

            path = parts0

            allparts.insert(0, parts1)

    return allparts




def process_file (filename):

	print >> sys.stderr, "Processing file: %s" % filename




	try:

		with open (filename, 'r') as fp:

			# Make up a unique ID for every file to use in C identifiers

			parts = splitall (filename[2:])

			parts = [parts0] + [x.capitalize () for x in parts[1:]]

			code = "".join (parts)

			code = code.replace ('.', '_')




			print "const char %s_name[] PROGMEM = \"%s\";" % (code, filename[1:])

			print

			print "const char %s[] PROGMEM = {" % code

			i = 0

			b = fp.read (1)

			while b:

				if args.nostrip or (b != '\n' and b != '\r' and b != '\t'):

					if i % 8 == 0:

						print "\t",

					print "0x%02x, " % ord (b),

					i = i + 1

					if i % 8 == 0:

						print ""

				b = fp.read (1)




			print "0x00"

			print "};"

			print

			print "// unsigned int %s_len = %u;" % (code, i + 1)

			print

	except IOError as ex:

		print "Cannot open file %s: %s" % (filename, str (ex))

		code = None




	return code




def process_dir (dirpath):

	print >> sys.stderr, "Processing directory: %s" % dirpath

	idents = []

	for filename in sorted (os.listdir (dirpath)):

		fullfile = os.path.join (dirpath, filename)

		if os.path.isfile (fullfile):

			ident = process_file (fullfile)

			if ident is not None:

				idents.append (ident)

		elif os.path.isdir (fullfile):

			idents.extends (process_dir (fullfile))

		else:

			print "Skipping %s" % filename

	return idents







### MAIN ###




idents = process_dir (".")

n_pages = len (idents)




print >> sys.stderr, "Total files processed: %d" % n_pages




if n_pages > 0:

	# Help with code to be put in sketch

	print >> sys.stderr

	print >> sys.stderr, "Put the following in your sketch:"

	print >> sys.stderr

	print >> sys.stderr, '#include "html.h"'

	print >> sys.stderr

	for n, ident in enumerate (idents):

		print >> sys.stderr, "const Page page%02d PROGMEM = {%s_name, %s, NULL};" % (n + 1, ident, ident)




	print >> sys.stderr




	print >> sys.stderr, "const Page* const pages[] PROGMEM = {"

	for n in xrange (1, n_pages + 1):

		print >> sys.stderr, "\t&page%02d," % n




	print >> sys.stderr, "\tNULL"

	print >> sys.stderr, "};"







Ho provato sia con python 3.6 che con il 2.7, ma nessun risultato positivo, il 3.6 mi da fin da subito errore, il 2.7 mi dice che mancano argomenti..





--- Ultima modifica di TheUSB in data 2017-05-28 20:29:03 ---
Allegati
Ciao anche a te, sai ho delle fortissime perplessità quando leggo messaggi come il tuo.

Hai preso uno script, che dovrebbe più o meno fare al caso tuo e chiedi poi a qualcuno di leggersi la sbrodolata di codice per capire perché non fa quello che promette. Probabilmente è un problema mio, ma non è questo lo spirito giusto. Dovresti a mio avviso prenderti un bel manuale di Python, cercare di capire quello che lo script fa e dopo opportune prove, isolare la sezione che non capisci o che ti è oscura e chiedere spiegazioni/aiuto solo su quella.

Fare così come hai fatto tu non ha senso per me, non ti porterà nulla e farà venire mal di testa a chi risponde.
Cya
Hai più che ragione, non so nemmeno cosa ho frà le mani, quindi purtroppo ho dovuto fare una domanda simile, devo solo riuscire a compilare quel file, ho poco tempo per impararmi pure il python per bene, devo finire un progetto d'esame realizzato con arduino, e frà la programmazione devo aggiungere al codice il file html.h, che deve essere ottenuto compilando l'index.html mediante html2h.py, per me questo è un grosso blocco, altra gente ha già compilato questi file, ma come già scritto sul codice, non è stato testato su windows, mi scuso per le mie impossibili richieste, una soluzione più semplice e veloce secondo te? :)


Pagina: 1



Esegui il login per scrivere una risposta.