Найти - Пользователи
Полная версия: Проблема с прочтением файлов и сохранением их содержимого в переменных
Начало » Python для новичков » Проблема с прочтением файлов и сохранением их содержимого в переменных
1 2
nkareva
Подскажите, пожалуйста почему при открытии файла и сохранении его содержимого в переменной srt1 не получается сохранить это же содержимое файла в в другой переменной list1? выдает пустой список

 myfile_in = open("reading_in.txt", "r")
str1 = myfile_in.read()
print(str1)
list1 = myfile_in.read().split()
print(list1)
myfile_in.close()
vic57
nkareva
list1 = myfile_in.read().split()
 list1 = str1.split()
вы уже прочитали файл, указатель сдвинулся в конец файла
FishHook
nkareva
Представьте, что при открытии файла вы получаете указатель на его начало. Вы можете читать файл посимвольно, построчно, пословно - как угодно, чтение - это перемещение указателя на n позиций от начала к концу. Файл может быть очень большим, больше чем у вас есть оперативной памяти, понятно, что никто не читает весь большой файл в память сразу, читают порциями. Для этого и придумана магия с указателем. А метод read делает как раз это - считывает весь файл. После этого указатель указывает на конец файла, и больше вы ничего считать не можете. Вам надо переместить указатель на начало, для этого есть если не ошибаюсь метод seek.
nkareva
Спасибо огромное!
Теперь ясно!!
Почему-то нигде в учебниках не встречала этого момента!
nkareva
vic57
Да, это понятно, что можно сделать из строки список. У меня вопрос был именно почему список пустой. Но теперь ясно! Спасибо огромное!!
nkareva
Да метод seek
Вот так работает:
myfile_in = open(“reading_in.txt”, “r”)
str1 = myfile_in.read()
print(str1)
myfile_in.seek(0)
list1 = myfile_in.read().split()
print(list1)
myfile_in.close()

Спасибо еще раз!!
marvellik
 myfile_in = open('reading_in.txt', 'r')
str1 = myfile_in.read()
print(str1)
myfile_in.seek(0)
list1 = myfile_in.read().split()
print(list1)
myfile_in.close()
зачем два раза читать файл?
 myfile_in = open('reading_in.txt', 'r)
str1 = myfile_in.read()
myfile_in.close()
print(str1)
list1 = str1.split()
print(list1)
py.user.next
nkareva
Почему-то нигде в учебниках не встречала этого момента!
Да у тебя много ошибок. Непонятно, какие учебники ты читала вообще. Читай Dive Into Python 3. Книжка бесплатная; есть русский перевод, хотя и в оригинале легко воспринимается.
Здесь онлайн-копия
https://diveinto.org/python3/table-of-contents.html
nkareva
py.user.next
Да у тебя много ошибок. Непонятно, какие учебники ты читала вообще. Читай Dive Into Python 3. Книжка бесплатная; есть русский перевод, хотя и в оригинале легко воспринимается.
Здесь онлайн-копия
Ошибки неизбежны. На ошибках учатся. Если нетрудно, напиши, какие ошибки, хотя бы парочку самых критичных.
Читаю, все что нахожу в Интернете, начинала с книги Mark Lutz Learning Python и A Byte of Python.
Спасибо за ссылку, буду читать.
nkareva
marvellik
зачем два раза читать файл?
В общем, конечно не за чем, можно преобразовать.
Просто стало интересно, что будет если сделать так, а потом возник вопрос, почему так. Ответ получен))
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB