windows - python script arbejder ikke på cmd

Indlæg af Hanne Mølgaard Plasc

Problem



Dette er en simpel kode, dens funktion er at udvinde metadataene for bestemte billeder. Det ville dog arbejde på enhver linux-maskine via terminalbøden som forventet, uanset om du udskriver metadata i terminalen eller gemmer resultatet i en tekstfil.


Når det kommer til CMD på Windows, som er det primære OS til min pc, ville det ikke virke, selv shell IDLE for Python det skaber ikke filen eller endda udskriver metadata.


koder forklaring, tager to parametre, navn på billede og ud < < betyder, om det skal formidle dataene til terminalen eller til en bestemt tekstfil.


Jeg kan faktisk ikke se hvor problemet er !!


Vær venlig at hjælpe mig med at identificere problemet !! Tak


Her er koden:


from time import sleep
import argparse
from PIL import Image
from PIL.ExifTags import TAGS

def getMetaData(imgname, out):
    """supported format of images are: .JPG, .TIF & .WAV"""
    try:
        metaData = {} # dictionary to hold the tags
        imgFile = Image.open(imgname) 
        print "Getting meta data..."
        info = imgFile.\_getexif()
        if info:
            print "Found Meta Data! "
            for (tag, value) in info.items():
                tagname = TAGS.get(tag, tag) # to human readable format
                metaData[tagname] = value
                if not out:
                    print tagname, value
            if out:
                print "outputting to file ..."
                with open(out, "w") as f:
                    for (tagname, value) in metaData.items():
                        f.write(str(tagname)+'	'+str(value)+"
")
    except:
        print "Failed!!"

def Main():
    print "Coded By: GentleMan"
    print "Created 2/24/2017"
    print "Use it carefully baby"
    print "Special for x6x.net"
    sleep(3)
    parser = argparse.ArgumentParser()
    parser.add\_argument("img", help="Name of an image File")
    parser.add\_argument("--output","-o", help="dump data out to File.")
    args = parser.parse\_args()
    if args.img:
        print getMetaData(args.img, args.output)
    else:
        print parser.usage

if \_\_name\_\_ == '\_\_main\_\_':
    Main()

Bedste reference