Файлы в Python

1. Определение файла. Остатки кластеров.

2. Перевод строки.

\n — перемещение позиции печати на одну строку вниз (изначально – без возврата каретки машинки).

\r — перемещение позиции печати в крайнее левое положение (изначально — без перехода на следующую строку)

3. Абсолютный и относительный путь к файлу.

4. Кодировка файлов.

5. Текстовые и бинарные файлы.

6. Чтение данных из файла

Рассмотрим простой пример:

from pprint import pprint
f = open("виджет2.py", encoding="utf-8")
a = f.read(20)
print(a)
print(f.name)
print(f.tell())
print(f.seek(112))
print(f.tell())
a = f.read(20)
print(a)
pprint(dir(f))

Функция pprint предназначена для красивого вывода, pprint(dir(f)) выводит методы и свойства f. open — открывает файл и открытому файлу ставит в соответствие дескриптор f, с которым мы далее работаем.

В текстовом режиме можно читать файл построчно с использованием метода readline, при этом признаком конца строки является символ \n:

f = open("виджет2.py", encoding="utf-8")
for i in range(7):
    print(f.readline(), end="")
f.close()

При этом строка читается из файла целиком, вместе со всеми специальными символами.

Текстовый файл можно занести в список:

f = open("виджет2.py", encoding="utf-8")
lines = f.readlines()
print('Type: %s, length: %d' % (type(lines), len(lines))) # Тип и количество строк
print(lines[11]) # Номер выводимой строки
f.close()

Файл можно перебирать по строкам:

f = open("виджет2.py", encoding="utf-8")
for number, line in enumerate(f):
    print(line, end="")
    if number > 8:
        break
f.close()

7. Запись в файл

f = open("1.txt", 'w')
print(f.write('123\n456'))
f.close()

8. Взаимодействие с PyQT

C помощью Qt Desiner создайте форму с двумя текстовыми областями и двумя кнопками как показано ниже на рисунке. Сохраните макет под именем read_file.ui. Обратите внимание, что одна текстовая область называется textBrowser, другая — textBrowser_2, а кнопки — pushButton и pushButton_2. После этого пишем код:

import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
 
  
class MyWidget(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi('read_file.ui',self)
        self.pushButton.clicked.connect(self.loadText)
        self.pushButton_2.clicked.connect(self.reverseText)
         
    def loadText(self):
        with open('read_file.ui','r') as f:
            self.textBrowser.setText(f.read()) 
    
    def reverseText(self):
        data = self.textBrowser.toPlainText()
        self.textBrowser_2.setText(data[::-1])           
 
app = QApplication(sys.argv)
ex = MyWidget()
ex.show()
sys.exit(app.exec_())

Результат работы программы показан ниже.

Поделиться:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • StumbleUpon
  • Technorati
  • БобрДобр
  • Memori.ru
  • МоёМесто.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.