Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Ongelma tiedoston avaamisessa

aurinkoinen1 [15.04.2019 23:56:06]

#

Moi,

Yritän saada seuraavanlaista tehtävää ratkaistua, mutta en ole aivan sitä osannut ratkaista oikein. Alussa vaikka minulla olisi auki file jossa on numeroita, niin saan silti saman vastauksen kuin vaikka sellaista fileä ei ole.

Lisäksi en saa listaa näkyviin, eikä täten numeroiden ja suurimman numeron-numero kirjoitus uudelle filelle onnistu. Osaisiko joku mahdollisesti auttaa?

Tehtävä:

Ask user for a file with integer numbers (one number in a row). If the file does not exist, print a message and finish. Make an empty list. Read each row, delete the new line character (method strip()), convert it to integer and append into the list. If the row does not contain an integer, skip it and continue with next. Print the greatest number or a message for an empty list. Write all the numbers and their difference from the greatest number to a new .csv file in form number; difference.

Tässä käyttämäni koodi:

import sys

file = input("File name: ")

try:
    file =open(filename, "r")
except:
    print("No file")
    sys.exit()

list1 = []

sos = file.readlines()
for line in sos:

    integer = int(line.strip())

    if not line:
          continue
    else:
        list1.append(integer)

if not list1:
    print("No list")

else:
    print("Greatest number is: ", max(list1))

newfile = open(csvfile.csv, "w")

for i in list1:
    print(line.strip()+';'+ max(list1)-(line.strip()),file=csvfile)


csvfile.close()

Metabolix [16.04.2019 04:45:01]

#

Luet tiedostonimen muuttujaan file mutta yrität avata tiedostoa muuttujalla filename. Jos ottaisit alusta try-except-rakenteen pois, näkisit varsinaisen virheilmoituksen. Virhe tulee siis väärästä muuttujan nimestä, ei suinkaan avaamisen epäonnistumisesta. Kannattaa harkita except-lauseessa odotetun poikkeuksen tyypin kirjaamista, tässä tapauksessa esimerkiksi except IOError.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta