Gå til innhold

Hjelp i python: ValueError: Too may values to unpack.


Anbefalte innlegg

Hei driver og lærer meg python, og prøver å åpne en fil med denne koden, og har $ fil.py ert.txt i komando linja, noen som ser hvorfor?

(btw. bruker pysscripter nyeste versjon hvis det har noe å si)

from sys import argv
script, filename = argv
txt = open(filename)
print "Here's your file %r:" % filename
print txt.read()
print "Type the filename again:"
file_again = raw_input("> ")
txt_again = open(file_again)
print txt_again.read()

Lenke til kommentar
Videoannonse
Annonse

python 2.x eller 3.x? Det har ofte mye å si :) Koden ser i hvertfall ut til å være ment til 2.x

 

Ta en enkel debugging med å kjøre følgende kode på samme måte:

from sys import argv
print argv

 

Ved å skrive ut ting på denne måten kan man lett se hva som er galt.

Endret av etse
Lenke til kommentar

Denne er kode må kjøres fra kommandolinjen,kjører du fra PyScripter vil du få "Too may values to unpack".

Når koden ikke kjøreres fra kommandolinjen,vil "argv" kun ha en verdi(som er script navn)

>>> script, filename = [1]
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
ValueError: need more than 1 value to unpack

>>> script, filename = [1,2]
>>> script
1
>>> filename
2
>>>

 

Eller ser nå at det kan være at du får for mage verdier fra kommandolinjen.

>>> script, filename = [1,2,3]
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
ValueError: too many values to unpack

Som postet bruk "print argv" eller se på lengde len(argv).

"argv" putter argumenter fra kommandolinjen inn i en liste.

Endret av SNIPPSAT
Lenke til kommentar

Denne er kode må kjøres fra kommandolinjen,kjører du fra PyScripter vil du få "Too may values to unpack".

Når koden ikke kjøreres fra kommandolinjen,vil "argv" kun ha en verdi(som er script navn)

>>> script, filename = [1]
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
ValueError: need more than 1 value to unpack

>>> script, filename = [1,2]
>>> script
1
>>> filename
2
>>>

 

Eller ser nå at det kan være at du får for mage verdier fra kommandolinjen.

>>> script, filename = [1,2,3]
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
ValueError: too many values to unpack

Som postet bruk "print argv" eller se på lengde len(argv).

"argv" putter argumenter fra kommandolinjen inn i en liste.

 

Hvordan kjører jeg den fra komandolinjen? :)

Lenke til kommentar
Hvordan kjører jeg den fra komandolinjen?

Hmm du vet hva kommandolinjen er cmd

Når du bruker "argv" så er for og få kommandolinje argumenter send til Python koden.

 

Ser sånn ut når jeg kjører en test i cmd.

Microsoft Windows [Versjon 6.1.7601]
Copyright © 2009 Microsoft Corporation. Med enerett.
C:\Users\Tom>cd\
C:\>f:
F:\>cd 1py_div
F:\1py_div>python test_argv.py test.txt
Here's your file 'test.txt':
111.11
222.22
Type the filename again:
> test.txt
111.11
222.22
F:\1py_div>

Endret av SNIPPSAT
Lenke til kommentar

Hmm du vet hva kommandolinjen er cmd

Når du bruker "argv" så er for og få kommandolinje argumenter send til Python koden.

 

Ser sånn ut når jeg kjører en test i cmd.

Microsoft Windows [Versjon 6.1.7601]
Copyright © 2009 Microsoft Corporation. Med enerett.
C:\Users\Tom>cd\
C:\>f:
F:\>cd 1py_div
F:\1py_div>python test_argv.py test.txt
Here's your file 'test.txt':
111.11
222.22
Type the filename again:
> test.txt
111.11
222.22
F:\1py_div>

 

Ja, men hvordan kjøre jeg kode fra cmd? Når jeg googler står at jeg skal skrive python der, men da får jeg "gjenkjennes ikke.." feilmeldinga :p

Lenke til kommentar
Ja, men hvordan kjøre jeg kode fra cmd? Når jeg googler står at jeg skal skrive python der, men da får jeg "gjenkjennes ikke.." feilmeldinga

Du må sette opp environment variable så den peker på Python versjonen du bruker, ellers må du kjøre fra mappe der "python.exe" er plassert.

 

Her er hvordan du kan sette oppe dette.

I environment variable Path,legger du til ;C:\python27\;C:\python27\scripts

Restart pcen.

Start cmd,skriv "python"

Er environment variable satt opp riktig starter nå Python.

Video av det samme.

Endret av SNIPPSAT
  • Liker 1
Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...