![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 253; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.132.253 (0.009 с.) |