Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Неправильно читает данные из файла [RSS Feed]

#1 Март 18, 2017 19:35:15

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла


Вот программа которая должна сохранять данные в файл и открывать их в текстовом поле но добавляется только то последняя строка, в чем моя ошибка, помогите пожалуйста.



from PyQt5.QtWidgets import *
import sys


class MyWindow(QWidget):
def __init__(self):
super(MyWindow, self).__init__()
self.resize(300, 250)
vb = QVBoxLayout()
self.setLayout(vb)
self.but1 = QPushButton('Save')
self.text1 = QTextEdit()
self.le1 = QLineEdit()
self.le2 = QLineEdit()
self.but2 = QPushButton('Open')
self.text2 = QTextEdit()
self.le3 = QLineEdit()
self.le4 = QLineEdit()
vb.addWidget(self.but1)
vb.addWidget(self.text1)
vb.addWidget(self.le1)
vb.addWidget(self.le2)
vb.addWidget(self.but2)
vb.addWidget(self.text2)
vb.addWidget(self.le3)
vb.addWidget(self.le4)
self.but1.clicked.connect(self.save_file)
self.but2.clicked.connect(self.open_file)
self.show()

def save_file(self):
f = open( "test.txt" ,'w' )
for item in self.text1.toPlainText():
f.write(item)
f.write('\n')
f.write("---")
f.write('\n')
f.write(self.le1.text())
f.write('\n')
f.write(self.le2.text())
f.write('\n')

f.close()

def open_file(self):
f = open('test.txt')
for line in f.readlines():
self.text2.setText(line)
f.close()


if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())

Прикреплённый файлы:
attachment test1.PNG (5,3 KБ)

Офлайн

#2 Март 18, 2017 19:36:12

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

вот скриншот текстового файла

Прикреплённый файлы:
attachment test_txt.PNG (4,1 KБ)

Офлайн

#3 Март 18, 2017 20:34:27

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

zxcvbnm
 def open_file(self):
f = open('test.txt')
for line in f.readlines():
self.text2.setText(line)
f.close()
Ну так у вас идет построчное считывание из файла и каждая строка записывается в text2, но каждая очередная строка перезаписывает предыдущию. Более конкретно не мугу сейчас ответить, спать собрался.

Офлайн

#4 Март 18, 2017 20:42:34

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

Используйте вместо setText(line) append(line)
Ну и не забывайте читать мануалы чтоли http://doc.qt.io/qt-5/qtextedit.html
там описано еще много интересных методов QTextEdit



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Март 18, 2017 21:07:37

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

  def open_file(self):
        f = open('test.txt')
        for line in f.readlines():
            self.text2.append(line)
        f.close()

Вот я сделал так но оно читает и добавляет пустые строки после каждой прочитанной

Прикреплённый файлы:
attachment test1.PNG (2,0 KБ)

Офлайн

#6 Март 18, 2017 21:10:36

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

             self.text2.append(line.rstrip())



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Март 18, 2017 21:10:47)

Офлайн

#7 Март 18, 2017 21:27:54

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

это не он, это file, у него есть “фишка” когда он считывает сттроки он автоматом в конце ставит “\n” - перевод строки, вот вы ее и получаете, а append добавляет текст в новой строки.
Выше уже подсказали как пофиксить.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 18, 2017 21:29:49)

Офлайн

#8 Март 19, 2017 12:12:17

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Неправильно читает данные из файла

JOHN_16
Большое спасибо

Офлайн

  • Начало
  • » GUI
  • » Неправильно читает данные из файла[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version