Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Права доступа к файлам и каталогамСодержание книги
Поиск на нашем сайте
>>> import os # Подключаем модуль os >>> os.access(r"file.txt", os.F_OK) # Файл существует True >>> os.access(r"C:\book", os.F_OK) # Каталог существует True >>> os.access(r"C:\book2", os.F_OK) # Каталог не существует False
>>> os.chmod(r"file.txt", 0o777) # Полный доступ к файлу 16.6. Функции >>> import shutil # Подключаем модуль >>> shutil.copyfile(r"file.txt", r"file2.txt") >>> # Путь не существует: >>> shutil.copyfile(r"file.txt", r"C:\book2\file2.txt") ... Фрагмент опущен... FileNotFoundError: [Errno 2] No such file or directory: 'C:\\book2\\file2.txt'
>>> shutil.copy(r"file.txt", r"file3.txt")
>>> shutil.copy2(r"file.txt", r"file4.txt")
>>> shutil.move(r"file4.txt", r"C:\book\test")
import os # Подключаем модуль try: os.rename(r"file3.txt", "file4.txt") except OSError: print("Файл не удалось переименовать") else: print("Файл успешно переименован")
>>> os.remove(r"file2.txt") >>> os.unlink(r"file4.txt")
>>> import os.path >>> os.path.exists(r"file.txt"), os.path.exists(r"file2.txt") (True, False) >>> os.path.exists(r"C:\book"), os.path.exists(r"C:\book2") (True, False)
>>> os.path.getsize(r"file.txt") # Файл существует >>> os.path.getsize(r"file2.txt") # Файл не существует ... Фрагмент опущен... OSError: [Error 2] Не удается найти указанный файл: 'file2.txt'
>>> import time # Подключаем модуль time >>> t = os.path.getatime(r"file.txt") >>> t 1304111982.96875 >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '30.04.2011 01:19:42'
>>> t = os.path.getctime(r"file.txt") >>> t 1304028509.015625 >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '29.04.2011 02:08:29'
>>> t = os.path.getmtime(r"file.txt") >>> t 1304044731.265625 >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '29.04.2011 06:38:51'
Листинг 16.4. Пример использования функции stat() >>> import os, time >>> s = os.stat(r"file.txt") >>> s nt.stat_result(st_mode=33060, st_ino=2251799813878096, st_dev=0, st_nlink=1, st_uid=0, st_gid=0, st_size=18, st_atime=1304111982, st_mtime=1304044731, st_ctime=1304028509) >>> s.st_size # Размер файла >>> t = s.st_atime # Время последнего доступа к файлу >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '30.04.2011 01:19:42' >>> t = s.st_ctime # Время создания файла >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '29.04.2011 02:08:29' >>> t = s.st_mtime # Время последнего изменения файла >>> time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t)) '29.04.2011 06:38:51'
Листинг 16.5. Пример использования функции utime() >>> import os, time >>> os.stat(r"file.txt") # Первоначальные значения nt.stat_result(st_mode=33060, st_ino=2251799813878096, st_dev=0, st_nlink=1, st_uid=0, st_gid=0, st_size=18, st_atime=1304111982, st_mtime=1304044731, st_ctime=1304028509) >>> t = time.time() — 600 >>> os.utime(r"file.txt", (t, t)) # Текущее время минус 600 сек >>> os.stat(r"file.txt") nt.stat_result(st_mode=33060, st_ino=2251799813878096, st_dev=0, st_nlink=1, st_uid=0, st_gid=0, st_size=18, st_atime=1304112906, st_mtime=1304112906, st_ctime=1304028509) >>> os.utime(r"file.txt", None) # Текущее время >>> os.stat(r"file.txt") nt.stat_result(st_mode=33060, st_ino=2251799813878096, st_dev=0, st_nlink=1, st_uid=0, st_gid=0, st_size=18, st_atime=1304113557, st_mtime=1304113557, st_ctime=1304028509) 16.7. Преобразование пути к файлу или каталогу >>> import os.path >>> os.path.abspath(r"file.txt") 'C:\\book\\file.txt' >>> os.path.abspath(r"folder1/file.txt") 'C:\\book\\folder1\\file.txt' >>> os.path.abspath(r"../file.txt") 'C:\\file.txt'
>>> os.path.sep '\\'
>>> "C:\\temp\\new\\file.txt" # Правильно 'C:\\temp\\new\\file.txt' >>> r"C:\temp\new\file.txt" # Правильно 'C:\\temp\\new\\file.txt' >>> "C:\temp\new\file.txt" # Неправильно!!! 'C:\temp\new\x0cile.txt'
>>> r"C:\temp\new\" # Неправильно!!! SyntaxError: EOL while scanning string literal >>> r"C:\temp\new\\" 'C:\\temp\\new\\\\'
>>> "C:\\temp\\new\\" # Правильно 'C:\\temp\\new\\' >>> r"C:\temp\new\\"[:-1] # Можно и удалить слэш 'C:\\temp\\new\\'
>>> os.path.isabs(r"C:\book\file.txt") True >>> os.path.isabs("file.txt") False
>>> os.path.basename(r"C:\book\folder1\file.txt") 'file.txt' >>> os.path.basename(r"C:\book\folder") 'folder' >>> os.path.basename("C:\\book\\folder\\") ''
>>> os.path.dirname(r"C:\book\folder\file.txt") 'C:\\book\\folder' >>> os.path.dirname(r"C:\book\folder") 'C:\\book' >>> os.path.dirname("C:\\book\\folder\\") 'C:\\book\\folder'
>>> os.path.split(r"C:\book\folder\file.txt") ('C:\\book\\folder', 'file.txt') >>> os.path.split(r"C:\book\folder") ('C:\\book', 'folder') >>> os.path.split("C:\\book\\folder\\") ('C:\\book\\folder', '')
>>> os.path.splitdrive(r"C:\book\folder\file.txt") ('C:', '\\book\\folder\\file.txt')
>>> os.path.splitext(r"C:\book\folder\file.tar.gz") ('C:\\book\\folder\\file.tar', '.gz')
>>> os.path.join("C:\\", "book\\folder", "file.txt") 'C:\\book\\folder\\file.txt' >>> os.path.join(r"C:\\", "book/folder/", "file.txt") 'C:\\\\book/folder/file.txt'
>>> p = os.path.join(r"C:\\", "book/folder/", "file.txt") >>> os.path.normpath(p) 'C:\\book\\folder\\file.txt' Перенаправление ввода/вывода Листинг 16.6. Перенаправление вывода в файл >>> import sys # Подключаем модуль sys >>> tmp_out = sys.stdout # Сохраняем ссылку на sys.stdout >>> f = open(r"file.txt", "a") # Открываем файл на дозапись >>> sys.stdout = f # Перенаправляем вывод в файл >>> print("Пишем строку в файл") >>> sys.stdout = tmp_out # Восстанавливаем стандартный вывод >>> print("Пишем строку в стандартный вывод") Пишем строку в стандартный вывод >>> f.close() # Закрываем файл >>> f = open(r"file.txt", "a")
>>> print("Пишем строку в файл", file=f) >>> f.close()
>>> f = open(r"file.txt", "a") >>> print("Пишем строку в файл", file = f, flush = True) >>> print("Пишем другую строку в файл", file = f, flush = True) >>> f.close()
Листинг 16.7. Перенаправление потока ввода # -*- coding: utf-8 -*- import sys tmp_in = sys.stdin # Сохраняем ссылку на sys.stdin f = open(r"file.txt", "r") # Открываем файл на чтение sys.stdin = f # Перенаправляем ввод while True: try: line = input() # Считываем строку из файла print(line) # Выводим строку except EOFError: # Если достигнут конец файла, break # выходим из цикла sys.stdin = tmp_in # Восстанавливаем стандартный ввод f.close() # Закрываем файл input()
>>> tmp_in = sys.stdin # Сохраняем ссылку на sys.stdin >>> f = open(r"file.txt", "r") >>> sys.stdin = f # Перенаправляем ввод >>> sys.stdin.isatty() # Не ссылается на терминал False >>> sys.stdin = tmp_in # Восстанавливаем стандартный ввод >>> sys.stdin.isatty() # Ссылается на терминал True >>> f.close() # Закрываем файл
Листинг 16.8. Содержимое файла tests.py # -*- coding: utf-8 -*- while True: try: line = input() print(line) except EOFError: break
C:\Python34\python.exe tests.py < file.txt
# -*- coding: utf-8 -*- print("String") # Эта строка будет записана в файл
C:\Python34\python.exe tests.py > file.txt
C:\Python34\python.exe tests.py >> file.txt
Листинг 16.9. Индикатор выполнения процесса # -*- coding: utf-8 -*- import sys, time for i in range(5, 101, 5): sys.stdout.write("\r... %s%%" % i) # Обновляем индикатор sys.stdout.flush() # Сбрасываем содержимое буфера time.sleep(1) # Засыпаем на 1 секунду sys.stdout.write("\rПроцесс завершен\n") input() Сохранение объектов в файл >>> import pickle >>> f = open(r"file.txt", "wb") >>> obj = ["Строка", (2, 3)] >>> pickle.dump(obj, f) >>> f.close()
>>> f = open(r"file.txt", "rb") >>> obj = pickle.load(f) >>> obj ['Строка', (2, 3)] >>> f.close()
Листинг 16.10. Сохранение нескольких объектов >>> obj1 = ["Строка", (2, 3)] >>> obj2 = (1, 2) >>> f = open(r"file.txt", "wb") >>> pickle.dump(obj1, f) # Сохраняем первый объект >>> pickle.dump(obj2, f) # Сохраняем второй объект >>> f.close()
Листинг 16.11. Восстановление нескольких объектов >>> f = open(r"file.txt", "rb") >>> obj1 = pickle.load(f) # Восстанавливаем первый объект >>> obj2 = pickle.load(f) # Восстанавливаем второй объект >>> obj1, obj2 (['Строка', (2, 3)], (1, 2)) >>> f.close()
>>> f = open(r"file.txt", "wb") >>> obj = ["Строка", (2, 3)] >>> pkl = pickle.Pickler(f) >>> pkl.dump(obj) >>> f.close()
>>> f = open(r"file.txt", "rb") >>> obj = pickle.Unpickler(f).load() >>> obj ['Строка', (2, 3)] >>> f.close()
>>> obj1 = [1, 2, 3, 4, 5] # Список >>> obj2 = (6, 7, 8, 9, 10) # Кортеж >>> pickle.dumps(obj1) b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04K\x05e.' >>> pickle.dumps(obj2) b'\x80\x03(K\x06K\x07K\x08K\tK\ntq\x00.'
>>> pickle.loads(b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04K\x05e.') [1, 2, 3, 4, 5] >>> pickle.loads(b'\x80\x03(K\x06K\x07K\x08K\tK\ntq\x00.') (6, 7, 8, 9, 10)
>>> import shelve # Подключаем модуль >>> db = shelve.open("db1") # Открываем файл >>> db["obj1"] = [1, 2, 3, 4, 5] # Сохраняем список >>> db["obj2"] = (6, 7, 8, 9, 10) # Сохраняем кортеж >>> db["obj1"], db["obj2"] # Вывод значений ([1, 2, 3, 4, 5], (6, 7, 8, 9, 10)) >>> db.close() # Закрываем файл
>>> db = shelve.open("db1") >>> db.keys(), db.values() (KeysView(<shelve.DbfilenameShelf object at 0x00FE81B0>), ValuesView(<shelve.DbfilenameShelf object at 0x00FE81B0>)) >>> list(db.keys()), list(db.values()) (['obj1', 'obj2'], [[1, 2, 3, 4, 5], (6, 7, 8, 9, 10)]) >>> db.items() ItemsView(<shelve.DbfilenameShelf object at 0x00FE81B0>) >>> list(db.items()) [('obj1', [1, 2, 3, 4, 5]), ('obj2', (6, 7, 8, 9, 10))] >>> db.close()
>>> db = shelve.open("db1") >>> len(db) # Количество элементов >>> "obj1" in db True >>> del db["obj1"] # Удаление элемента >>> "obj1" in db False >>> "obj1" not in db True >>> db.close()
|
||||
Последнее изменение этой страницы: 2016-06-23; просмотров: 247; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.8.79 (0.01 с.) |