Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Ficheiros

$
0
0
Olá! Então é o seguinte: eu tenho um projeto de programação em que sao me dados ficheiros com as temperaturas desde 1890 por exemplo : Algeria,1890,06,22.48 e já fiz as seguintes funções: def data_fraccionaria(ano, mes): if 1 <= mes <= 12 and 1800 <= ano <= 2016: data_frac = ano + (mes - 0.5) / 12 else: raise ValueError("data_fraccionaria: argumentos errados") return data_frac def ler_ficheiro(nome_ficheiro): u"""Lê os dados de temperatura de um ficheiro. A 1ª linha do ficheiro (o cabeçalho) é descartada. Cada uma das restantes linhas é lida e dá origem a um dado de temperatura que é acrescentado a uma lista de dados. Requires: nome_ficheiro é uma string que representa o caminho para um ficheiro de texto; as linhas deste ficheiro, a partir da 2ª linha, têm de estar no formato país,ano,mês,temperatura ou seja, são 4 strings separadas por vírgulas; as strings devem poder ser convertidas para string, int, int e float, respectivamente; não podem surgir vírgulas nos nomes dos países. Ensures: uma lista de quádruplos do tipo (string, int, int, float) em que cada quádruplo representa (país, ano, mês, temperatura). """ fich = open(nome_ficheiro) dados = [] cabecalho = fich.readline() # print cabecalho # este print é usado em testes for linha in fich: dado = linha.strip().split(",") # tudo ainda em formato lista de texto pais = dado[0] ano = int(dado[1]) mes = int(dado[2]) temperatura = float(dado[3]) dados.append((pais, ano, mes, temperatura)) fich.close() return dados Agora quero definir a seguinte função: def escrever_ficheiro_data_fraccionaria(dados, nome_ficheiro): u"""Escreve os dados, com as datas em formato fraccionário, num ficheiro. Coloca o cabeçalho "Country,Date,Temperature" como 1ª linha do ficheiro. Cada uma das restantes linhas corresponde à conversão, para texto, de um dado da lista dados passada como 1º argumento. A data é convertida para formato fraccionário, com arredondamento à terceira casa decimal; portanto, passa a ser representada por um float, e não por dois int. As 3 strings representando as componentes dos dados são separadas por vírgulas. Requires: dados é uma lista de quádruplos do tipo (string, int, int, float) em que cada quádruplo representa (país, ano, mês, temperatura); nome_ficheiro é uma string que representa o caminho para um ficheiro de texto a criar. Ensures: é criado um ficheiro cuja 1ª linha é "Country,Date,Temperature" e em que cada uma das restantes linhas contém 3 strings separadas por vírgulas, representando, respectivamente, país, data em formato fraccionário e temperatura. """ Já estou há muito tempo à volta disto e não estou a conseguir, se alguém me ajudar agradecia!

Viewing all articles
Browse latest Browse all 11336

Trending Articles