Errore test Homework 6

F
FraDema (710 points)
4 8 10
asked Dec 3, 2021 in HW6 by FraDema (710 points)
closed Dec 3, 2021 by FraDema
Se al mio programma gli do in input manualmente i dati, funziona bene, mentre se provo ad avviare i test da anaconda prompt mi da questo errore su tutti i test:

testlib.ForbiddenError: Opening file 'test_mat-16-25.png' with mode='rb' is forbidden!

Nel programma l'unico file che apro è file_dati, ovvero il file testo per prenderne i valori che mi servono a disegnare i palazzi e lo apro in questo modo: with open(file) as f.

Quale può essere il problema? e come risolvo?
217 views
closed with note: Risolto, grazie a tutti

3 Answers

g
giac (2790 points)
7 14 27
answered Dec 3, 2021 by giac (2,790 points)
all'apertura per caso specifichi il modo di apertura? basta non specificarlo, e lo apre automaticamente e senza problemi in modalità lettura
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Ho appena provato ma mi da lo stesso e identico errore
g
giac (2790 points)
7 14 27
commented Dec 3, 2021 by giac (2,790 points)
scusa, rileggendo meglio la tua domanda il problema nn è nell'apertura del file da cui prendi le info, ma dall'apertura del file dove salvi la mappa disegnata (Opening file 'file_png' with mode='wb' is forbidden). poiché quella parte è fatta dal modulo importato image.save, non dovresti aver problemi, il file_png non sei tu a crearlo "esplicitamente".

confermi che praticamente l'unica volta che nel tuo codice usi "file_png" è solo per passarlo a image.save?
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Esatto, lo uso solo per salvarlo, forse sbaglio il modo in cui lo salvo? io faccio images.save(file_png,"file_png.png")
g
giac (2790 points)
7 14 27
commented Dec 3, 2021 by giac (2,790 points)

ecco forse

mettiamo che la tua matrice (lista di lista di tuple) è contenuta nella variabile "immagine", devi salvare cosi

images.save(immagine, file_png)

file_png è il riferimento al parametro che la funzione riceve, non devi specificare il .png finale perché il parametro conterrà tutto il nome del file dove salverà, compreso l'estensione (esempio: 'test_hw.png')

F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Ho capito grazie.

Ho modificato il programma ma adesso mi da un' altro errore.. : testlib.ForbiddenError: Opening file 'test_mat-16-25.png' with mode='rb' is forbidden!
g
giac (2790 points)
7 14 27
commented Dec 3, 2021 by giac (2,790 points)
come apri il file da cui prendi le info? qualcosa del tipo

with open(nome_file) as nfile:  ?

controlla anche qui che nome_file sia semplicemente il riferimento al parametro passato dalla funzione, e non qualcosa tipo nome_file.txt o cose del genere
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Passo il file_dati ad una funzione def pulisci_file(file), passando il file in questo modo: pulisci_file(file_dati) e all'interno di questa funzione faccio with open(file) as f:
g
giac (2790 points)
7 14 27
commented Dec 3, 2021 by giac (2,790 points)
ok il problema definitivamente non riguarda l'apertura del file txt, ma qualcosa nella creazione durante il salvataggio dell'immagine (Opening file 'test_mat-16-25.png' with mode='rb' is forbidden!).

mi dispiace, le mie poche conoscenze e competenze non mi fanno andare oltre ;(

se ricevo un'illuminazione ti faccio sapere, altrimenti buona fortuna :D
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Ho capito, non ti preoccupare, grazie per la tua pazienza. Aspetto con ansia una tua illuminazione hahaha
andrea.sterbini (172300 points)
510 927 1776
answered Dec 3, 2021 by andrea.sterbini (172,300 points)
Se consegni posso dare un'occhiata
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
va bene ora consegno
F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Mi scusi ma ho dei problemi con la consegna, il file algorithm le lo consegna senza nessun problema, mentre il source code mi dice: UTF-8 encoding mismatch, cosa dovrei fare?
simonemignanelli (2130 points)
1 2 22
answered Dec 3, 2021 by simonemignanelli (2,130 points)

Avevo lo stesso identico problema e mi ero scordato di inserire nel images.save() il parametro dell'uscita del file ovvero: images.save(matrice,file_png), mi raccomando scrivi essatamente file_png che è il nome del parametro. Nonostante @giac lo ha espresso chiaramente come fare io ti consiglio di guardare più che altro questa funzione perchè il problema probabilmente deriva da questa funzione e dalla successiva lettura che fa il programma quando esegue i test. Nei commenti poi ho visto che hai problemi di enconding, se non lo hai già fatto all'inizio del file scrivi:
# -*- coding: utf-8 -*-

F
FraDema (710 points)
4 8 10
commented Dec 3, 2021 by FraDema (710 points)
Grazie del consiglio, adesso i test non mi danno nessun errore, ma rimane ancora il problema della consegna del "Source Code"