Como você lê um arquivo em uma lista em Python?

Quero solicitar a um usuário que vários números aleatórios sejam gerados e salvos em um arquivo. Ele deu-nos essa parte. A parte que temos que fazer é abrir esse arquivo, converter os números em uma lista, depois encontrar a média, desvio padrão, etc. sem usar as ferramentas fáceis Python embutidas.

I'tentei utilizar open mas isso me dá uma sintaxe inválida (o nome do arquivo que escolhi foi "numbers" e ele salvou em "My Documents" automaticamente, então tentei open(numbers, 'r') e open(C:\name\MyDocuments\numbers, 'r') e nenhum deles funcionou).

f = open("file.txt")
lines = f.readlines()

Olha para aqui aqui. readlines() retorna uma lista contendo uma linha por elemento. Note que estas linhas contêm o \n' (novo caractere da linha) no final da linha. Você pode retirar este novo caractere de linha utilizando o métodostrip()-method. Ou seja, chamelines[index].strip()` para obter a string sem o caractere da nova linha.

Como joaquin observou, não se esqueça de f.fechar() o arquivo.

Converter strint em inteiros é fácil: int("12").

Comentários (2)

Você precisa passar um fio de nome de arquivo para "abrir". Aí'é uma complicação extra quando a string tem `nela, porque isso'é um caractere especial de fuga de string para Python. Você pode corrigir isso dobrando cada um como `````` ou colocando umr` na frente da string como a seguir: "r'C:{\i1}nome'{\i}meuDocuments{\i}numbers'{\i}

Edit: As edições da pergunta tornam-na completamente diferente da original, e como nenhuma delas era do poster original I'não tenho a certeza de que eles'estejam guerreados. No entanto, ele aponta uma coisa óbvia que pode ter sido ignorada, e que's como adicionar "My Documents" a um nome de arquivo.

Numa versão inglesa do Windows XP, My Documents is actually C:\Documents and Settingsmy Documents. Isto significa que a chamadaopen` deve ser parecida:

open(r"C:\Documents and Settings\name\My Documents\numbers", 'r')

Presumo que você'esteja utilizando XP porque você o chama de Meu Documentos - ele mudou no Vista e no Windows 7. Eu não'não sei se existe'é uma maneira fácil de procurar isto automaticamente em Python.

Comentários (0)
hdl = open("C:/name/MyDocuments/numbers", 'r')
milist = hdl.readlines()
hdl.close()
Comentários (2)