2016-10-17 4 views
2

В настоящее время я пытаюсь открыть текстовый файл под названием «температура.txt», который я сохранил на своем рабочем столе с помощью обработчика файлов, однако по какой-то причине я не могу заставить его работать. Может ли кто-нибудь сказать мне, что я делаю неправильно.Как открыть текстовый файл в Python?

#!/Python34/python 
from math import * 

fh = open('temperature.txt') 

num_list = [] 

for num in fh: 
    num_list.append(int(num)) 

fh.close() 
+2

Пожалуйста, покажите нам ошибку, которую вы получите. Также будет полезно краткое описание ваших данных в текстовом файле. – RichArt

+0

'FileNotFoundError' -' tempertature.txt' должен находиться в том же каталоге, что и ваш файл '.py'. 'ValueError' - пытается преобразовать строку (read from file) в int, но это не int. 'Can not see output' - распечатать список. –

+0

В коде нет ничего плохого. Если вам нужна помощь, вам также нужно сообщить об ошибке. Как и в предыдущих комментариях, проблема в основном состоит в том, что файл не существует (или скрипт ищет в нем неправильный каталог), или в вашем файле есть строки, которые не являются просто цифрами (например, пробелы на конец файла может вызвать ошибку в цикле for, даже если файл открыт правильно) – Shadow

ответ

-1

Вам просто нужно использовать .readlines() на ФХ

так:

#!/Python34/python 
from math import * 

fh = open('temperature.txt') 

num_list = [] 

read_lines = fh.readlines() 
for line in read_lines: 
    num_list.append(int(line)) 

fh.close() 
+0

Вы имеете в виду строку в строках –

+0

спасибо за то, что указали это, быстро отредактировав это! – Moardant

+1

На самом деле это не так. Вызов '' readlines' 'загрузит весь файл в память, но если оставить его в покое, будет только одна строка в памяти, что делает его более эффективным с большими файлами. – Shadow

0

вещий способ сделать это

#!/Python34/python 
from math import * 

num_list = [] 

with open('temperature.text', 'r') as fh: 
    for line in fh: 
     num_list.append(int(line)) 

Вы не нужно использовать здесь, потому что оператор «с» обрабатывает это автоматически. не

Если вы знакомы с списковым - это еще один способ:

#!/Python34/python 
from math import * 

with open('temperature.text', 'r') as fh: 
    num_list = [int(line) for line in fh] 

В обеих случаях «temperature.text» должен находиться в текущем каталоге, и я оставил импорт математического модуля, хотя ни один кусок кода нуждается в нем

+0

Вы пропустили цитату после имени файла в обоих примерах. – Shadow

+0

@shadow - легко фиксируется с быстрой редакцией :-) - все сделано. –

+0

Это намного лучше :) – Shadow

Смежные вопросы