Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
XcyperX
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 43
1

Не читается текстовый файл

19.11.2018, 13:38. Просмотров 766. Ответов 6
Метки нет (Все метки)

Нужно прочитать первую строку файла но на участке:

Python
1
2
3
with open(quest, 'r', encoding='utf-8-sig') as f:
    kol_vop = f.readline().strip()
    kol_vop = kol_vop.replace(u'#','')
приложение крашится.

Я так понял я неправильно путь задаю к файлу, но в консольном варианте у меня все работает. Путь формирую таким способом:
Python
1
2
3
4
palka = chr(92)
dir = os.path.abspath(os.curdir + '\quest')
ima = (str(self.comboBox.currentText()))
quest = dir + palka + ima
Если выводить переменную с путем то все выглядит красиво: F:\1\quest\Матан.txt

Но как бы не крутил, все равно не работает.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2018, 13:38
Ответы с готовыми решениями:

Не полностью читается файл на Windows
Просьба помочь, т.к. потихоньку начинают закипать мозги... При попытке считать строки из...

Не читается WAVE файл под Linux
Доброго времени суток. Для проекта по программирования, который я выполняю в школе, требуется...

Имеется текстовый файл. Переписать в другой файл
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на символ...

текстовый файл
Помогите не в падлу))) Пусть дан текстовый файл. Распечатать заданным номером

Текстовый файл
Задание: Напечатать в перевернутом виде самое длинное слово, состоящее только из цифр и букв не...

6
ТабуретY
1098 / 757 / 437
Регистрация: 05.12.2013
Сообщений: 2,281
19.11.2018, 14:00 2
а если так

Python
1
dir = os.path.abspath(os.curdir + r'\quest')
0
XcyperX
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 43
19.11.2018, 14:10  [ТС] 3
ТабуретY, Ничего не изменилось. Также выводит ошибку: Process finished with exit code -1073740791 (0xC0000409) и крашится
0
ТабуретY
1098 / 757 / 437
Регистрация: 05.12.2013
Сообщений: 2,281
19.11.2018, 14:15 4
Показывайте код gui
0
XcyperX
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 43
19.11.2018, 14:16  [ТС] 5
ТабуретY,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import sys  # sys нужен для передачи argv в QApplication
import os
import os.path
import datetime
import random
from PyQt5 import QtWidgets
import test3  # Это наш конвертированный файл дизайна
 
class ExampleApp(QtWidgets.QMainWindow, test3.Ui_MainWindow):
    def __init__(self):
        # Это здесь нужно для доступа к переменным, методам
        # и т.д. в файле design.py
        super().__init__()
        self.setupUi(self)  # Это нужно для инициализации нашего дизайна
        self.radioButton.setVisible(False)
        self.radioButton_2.setVisible(False)
        self.radioButton_3.setVisible(False)
        self.radioButton_4.setVisible(False)
        self.pushButton_2.setVisible(False)
        self.pushButton_3.setVisible(False)
 
 
 
 
        ball = 0
        kol = 0
        ent = "\n"
        x = 1
        # Записываем в переменную настоящее время
        a = datetime.datetime.today().strftime("%Y-%m-%d")
 
        # Находим путь где находится скрипт
        dir = os.path.abspath(os.curdir + '\quest')
 
        # Считываем файлы в папке quest
        files = os.listdir(dir)
 
        # Фильтруем поиск на txt
        txt = list(filter(lambda x: x.endswith('.txt'), files))
 
        # Выводим названия тестов
        for d in txt:
            self.comboBox.addItem(d.replace('.txt', ''))
 
        self.pushButton.clicked.connect(self.start)
       # self.pushButton_2.clicked.connect(self.zadachi)
 
    def start(self):
        palka = chr(92)
        dir = os.path.abspath(os.curdir + r'\quest')
        name = self.lineEdit.text()
        last_name = self.lineEdit_2.text()
        kol_zad = int(self.lineEdit_3.text())
        self.pushButton.setVisible(False)
        self.comboBox.setVisible(False)
        self.label.setVisible(False)
        self.label_2.setVisible(False)
        self.label_3.setVisible(False)
        self.label_4.setVisible(False)
        self.lineEdit.setVisible(False)
        self.lineEdit_2.setVisible(False)
        self.lineEdit_3.setVisible(False)
        self.radioButton.setVisible(True)
        self.radioButton_2.setVisible(True)
        self.radioButton_3.setVisible(True)
        self.radioButton_4.setVisible(True)
        self.pushButton_2.setVisible(True)
        ima = (str(self.comboBox.currentText()))
 
 
        quest = dir + palka + ima
 
        print(quest+'.txt')
 
        with open(quest, 'r', encoding='utf-8-sig') as f:
            kol_vop = f.readline().strip()
            kol_vop = kol_vop.replace(u'#', '')
 
 
   # def zadachi(self):
   #      for num in l:
   #
   #          if (kol == kol_zad):
   #              break
   #          with open(quest, 'r', encoding='utf-8') as f:
   #              for line in f:
   #                  if ('#' + str(num)) in line:
   #                      break
   #              vopros = f.readline().strip()
   #              otvet1 = f.readline().strip()
   #              otvet2 = f.readline().strip()
   #              otvet3 = f.readline().strip()
   #              otvet4 = f.readline().strip()
   #              kod = f.readline().strip()
   #              self.Label_5.setText(vopros)
   #              self.radioButton.setText(otvet1)
   #              self.radioButton_2.setText(otvet2)
   #              self.radioButton_3.setText(otvet3)
   #              self.radioButton_4.setText(otvet4)
   #
   #              kol = kol + 1
   #              if (k == kod):
   #                  ball += 1
 
 
 
def main():
    app = QtWidgets.QApplication(sys.argv)  # Новый экземпляр QApplication
    window = ExampleApp()  # Создаём объект класса ExampleApp
    window.show()  # Показываем окно
    app.exec_()  # и запускаем приложение
 
if __name__ == '__main__':  # Если мы запускаем файл напрямую, а не импортируем
    main()  # то запускаем функцию main()


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'test2.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(20, 30, 751, 121))
        font = QtGui.QFont()
        font.setPointSize(11)
        font.setBold(True)
        font.setWeight(75)
        self.label_5.setFont(font)
        self.label_5.setText("")
        self.label_5.setObjectName("label_5")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(50, 510, 671, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(50, 510, 671, 41))
        self.pushButton_3.setObjectName("pushButton_3")
        self.splitter = QtWidgets.QSplitter(self.centralwidget)
        self.splitter.setGeometry(QtCore.QRect(260, 70, 294, 411))
        self.splitter.setOrientation(QtCore.Qt.Vertical)
        self.splitter.setObjectName("splitter")
        self.label_3 = QtWidgets.QLabel(self.splitter)
        font = QtGui.QFont()
        font.setFamily("v_Holy Mackerel!")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")
        self.comboBox = QtWidgets.QComboBox(self.splitter)
        self.comboBox.setObjectName("comboBox")
        self.label_2 = QtWidgets.QLabel(self.splitter)
        font = QtGui.QFont()
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.lineEdit = QtWidgets.QLineEdit(self.splitter)
        self.lineEdit.setObjectName("lineEdit")
        self.label = QtWidgets.QLabel(self.splitter)
        font = QtGui.QFont()
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.splitter)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.label_4 = QtWidgets.QLabel(self.splitter)
        font = QtGui.QFont()
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")
        self.lineEdit_3 = QtWidgets.QLineEdit(self.splitter)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.pushButton = QtWidgets.QPushButton(self.splitter)
        self.pushButton.setObjectName("pushButton")
        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(50, 130, 671, 361))
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.radioButton = QtWidgets.QRadioButton(self.layoutWidget)
        self.radioButton.setMaximumSize(QtCore.QSize(16777215, 17))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.radioButton.setFont(font)
        self.radioButton.setText("")
        self.radioButton.setObjectName("radioButton")
        self.verticalLayout.addWidget(self.radioButton)
        self.radioButton_2 = QtWidgets.QRadioButton(self.layoutWidget)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.radioButton_2.setFont(font)
        self.radioButton_2.setText("")
        self.radioButton_2.setObjectName("radioButton_2")
        self.verticalLayout.addWidget(self.radioButton_2)
        self.radioButton_3 = QtWidgets.QRadioButton(self.layoutWidget)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.radioButton_3.setFont(font)
        self.radioButton_3.setText("")
        self.radioButton_3.setObjectName("radioButton_3")
        self.verticalLayout.addWidget(self.radioButton_3)
        self.radioButton_4 = QtWidgets.QRadioButton(self.layoutWidget)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.radioButton_4.setFont(font)
        self.radioButton_4.setText("")
        self.radioButton_4.setObjectName("radioButton_4")
        self.verticalLayout.addWidget(self.radioButton_4)
        self.label_5.raise_()
        self.pushButton_2.raise_()
        self.pushButton_3.raise_()
        self.layoutWidget.raise_()
        self.splitter.raise_()
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
 
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton_2.setText(_translate("MainWindow", "Следующий вопрос"))
        self.pushButton_3.setText(_translate("MainWindow", "Закончить тест"))
        self.label_3.setText(_translate("MainWindow", "Выберите тест:"))
        self.label_2.setText(_translate("MainWindow", "Введите имя:"))
        self.label.setText(_translate("MainWindow", "Введите фамилию:"))
        self.label_4.setText(_translate("MainWindow", "Введите количество заданий:"))
        self.pushButton.setText(_translate("MainWindow", "Начать!"))
0
ТабуретY
1098 / 757 / 437
Регистрация: 05.12.2013
Сообщений: 2,281
19.11.2018, 14:54 6
Лучший ответ Сообщение было отмечено XcyperX как решение

Решение

Вы к переменной quest '.txt' не добавляете

Python
1
2
3
4
5
6
7
quest = dir + palka + ima +'.txt'
 
        print(quest)
 
        with open(quest, 'r', encoding='utf-8-sig') as f:
            kol_vop = f.readline().strip()
            kol_vop = kol_vop.replace(u'#', '')
1
XcyperX
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 43
19.11.2018, 14:57  [ТС] 7
ТабуретY, Блииииин, точно )) В принт написал а не в переменную и туплю сижу ) Спасибо
0
19.11.2018, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2018, 14:57

Текстовый файл
есть текстовый файл , в нём две колонки цифр, надо первую колонку поделить на 100, вторую оставить...

Распарсить текстовый файл
Есть файл1.txt или просто файл с информацией (очень много строк), пример куска файла: $о...

Текстовый файл и строки
Дан текстовый файл. В нем каждая строка либо #, либо целое число, либо строка пустая. В конце строк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru