Se connecter

Informatique

Programmation

Sujet : [Python] Erreur au lancement du fichier .py
1
Kermit-et-peggy
Niveau 7
28 septembre 2020 à 13:26:20

Bonjour je galère depuis ce matin à lancer un script :-(

le script:

!/usr/bin/env python3
# Author: AnalogMan
# Modified Date: 2019-09-07
# Purpose: Compress/Decompress DDSZ files for Switch 
# Requirements: LZ4 (pip install lz4)

import sys, os, lz4.block, argparse

def main():
    print('\n======== DDSZ Archive Tool ========\n\n')

    if sys.version_info <= (3,1,0):
        print('Python version 3.1.x+ needed to run this script.\n\n')
        return 1    
    
    # Arg parser for program options
    parser = argparse.ArgumentParser(description='Process DDSZ files with LZ4')
    parser.add_argument('filename', help='Path to file')

    # Check passed arguments
    args = parser.parse_args()

    # Check if required files exist
    if os.path.isfile(args.filename) == False:
        print('File cannot be found.\n')
        return 1
    
    filename = args.filename

    # If DDSZ, decompress RAW block
    if (filename[-4:].lower()) == 'ddsz':
        try:
            with open(filename, 'rb') as f:
                compressed = f.read()
            with open(filename[:-4] + 'dds', 'wb') as f:
                f.write(lz4.block.decompress(compressed[4:]))
            print('DDS file decompressed successfully.\n\n')
        except:
            print('Could not decompress file.\n\n')

    # If DDS, compress to DDSZ and include filesize.
    elif (filename[-3:].lower()) == 'dds':
        try:
            with open(filename, 'rb') as f:
                decompressed = f.read()
            with open(filename[:-3] + 'ddsz', 'wb') as f:
                compressed = lz4.block.compress(decompressed)
                f.write((len(compressed)+4).to_bytes(4, byteorder='little', signed=True))
                f.write(compressed)
            print('DDS file compressed successfully.\n\n')
        except:
            print('Could not compress file.\n\n')
    else:
        print('Unsupported file.\n')
        return 1

if __name__ == "__main__":
    main()

Lorsque j'essaye de l’exécuter sur le shell j’obtiens cette erreur :

usage: DDSZ.py [-h] filename
DDSZ.py: error: the following arguments are required: filename

Le script vient pas de moi mais de cette page https://github.com/AnalogMan151/DDSZ_Tool/blob/master/DDSZ.py

Si quelqu'un aurait la gentillesse de m'aider :-)

El_Camino
Niveau 10
28 septembre 2020 à 14:39:00

le message est clair, il faut indiquer le nom du ficher quand tu lances le script

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 14:47:02

Quand je le lance avec double click il se referme

cybevil
Niveau 17
28 septembre 2020 à 15:08:12

Normal tu dois faire les compressions et décompressions à partir du shell.
Avec la commande :

Pour Compresser :
python NomduScript.py NomFichierACompresser

Pour DéCompresser :
python NomduScript.py NomFichierADéCompresser

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 15:24:43

Le 28 septembre 2020 à 15:08:12 cybevil a écrit :
Normal tu dois faire les compressions et décompressions à partir du shell.
Avec la commande :

Pour Compresser :
python NomduScript.py NomFichierACompresser

Pour DéCompresser :
python NomduScript.py NomFichierADéCompresser

Tu peux me dire la ligne exate que je dois taper avec se script pour décompresser ,je suis une brèle ...

cybevil
Niveau 17
28 septembre 2020 à 15:37:20

Pas de soucis, d'abord place ton fichier de script python et tes fichiers à décompresser dans le même dossier.
Puis donne moi leurs noms.

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 15:46:23

le fichier que j'aimerai décompresser se nomme d5w028_0_old.ddsz

cybevil
Niveau 17
28 septembre 2020 à 15:46:56

Et ton fichier de script python ?

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 15:49:12

DDSZ.py

cybevil
Niveau 17
28 septembre 2020 à 15:49:51

D'accord, est-ce que tu sais te déplacer dans l'invite de commande (cmd) avec les commande "cd" et "dir" ?

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 15:51:19

Non pas vraiment
"cd" s'est pour crée non?

cybevil
Niveau 17
28 septembre 2020 à 15:52:33

Non mais c'est assez simple, dir te permet d'afficher les dossier du répertoire dans lequel tu es et "cd nomDossier" te permet de rentrer dans un dossier.

Tu dois ouvrir une invite de commande et te déplacer jusqu'au dossier où se trouve tes fichiers.

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 15:57:08

powershell c'est bon?

j'ai mit mon dossier DDSZ TOOL qui contient DDSZ.py et d5w028_0_old.ddsz dans la racine de D:

cybevil
Niveau 17
28 septembre 2020 à 16:00:17

Oui powershell ça devrais être bon.
En fait le truc à verifier c'est que "C:\Users\nomUser\Desktop\testDecompresse" soit bien le chemin vers l'endroit qui contient tes fichiers.

Une fois que c'est bon, tu peux écrire : python DDSZ.py d5w028_0_old.ddsz

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 16:06:22

Desktop s'est le bureau non?

cybevil
Niveau 17
28 septembre 2020 à 16:07:34

Le 28 septembre 2020 à 16:06:22 kermit-et-peggy a écrit :
Desktop s'est le bureau non?

Oui oui, entraine toi peut-être à te déplacer dans les dossiers du powershell, puis essaye se que j'ai écrit, ça devrait marcher

Kermit-et-peggy
Niveau 7
28 septembre 2020 à 16:23:16

Merci c'est bon ça fonctionne
Merci de ta patiente

1
Sujet : [Python] Erreur au lancement du fichier .py
   Retour haut de page
Consulter la version web de cette page