Функции для работы с каталогами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции для работы с каталогами



>>> import os

>>> os.getcwd() # Текущий рабочий каталог

'C:\\book'

 

 

>>> os.chdir("C:\\book\\folder1\\")

>>> os.getcwd() # Текущий рабочий каталог

'C:\\book\\folder1'

 

 

>>> os.mkdir("newfolder") # Создание каталога

 

 

>>> os.rmdir("newfolder") # Удаление каталога

 

 

>>> os.listdir("C:\\book\\folder1\\")

['file1.txt', 'file2.txt', 'file3.txt', 'folder1', 'folder2']

 

 

>>> for (p, d, f) in os.walk("C:\\book\\folder1\\"): print(p)

 

C:\book\folder1\

C:\book\folder1\folder1_1

C:\book\folder1\folder1_1\folder1_1_1

C:\book\folder1\folder1_1\folder1_1_2

C:\book\folder1\folder1_2

 

 

>>> for (p, d, f) in os.walk("C:\\book\\folder1\\", False):

print(p)

C:\book\folder1\folder1_1\folder1_1_1

C:\book\folder1\folder1_1\folder1_1_2

C:\book\folder1\folder1_1

C:\book\folder1\folder1_2

C:\book\folder1\

 

 

import os

for (p, d, f) in os.walk("C:\\book\\folder1\\", False):

for file_name in f: # Удаляем все файлы

os.remove(os.path.join(p, file_name))

for dir_name in d: # Удаляем все каталоги

os.rmdir(os.path.join(p, dir_name))

 

 

import shutil

shutil.rmtree("C:\\book\\folder1\\")

 

 

>>> from os.path import normcase

>>> normcase(r"c:/BoOk/fIlE.TxT")

'c:\\book\\file.txt'

 

 

>>> import os.path

>>> os.path.isdir(r"C:\book\file.txt")

False

>>> os.path.isdir("C:\\book\\")

True

 

 

>>> os.path.isfile(r"C:\book\file.txt")

True

>>> os.path.isfile("C:\\book\\")

False

 

Листинг 16.12. Пример использования функции glob()

>>> import os, glob

>>> os.listdir("C:\\book\\folder1\\")

['file.txt', 'file1.txt', 'file2.txt', 'folder1_1', 'folder1_2',

'index.html']

>>> glob.glob("C:\\book\\folder1\\*.txt")

['C:\\book\\folder1\\file.txt', 'C:\\book\\folder1\\file1.txt',

'C:\\book\\folder1\\file2.txt']

>>> glob.glob("C:\\book\\folder1\\*.html") # Абсолютный путь

['C:\\book\\folder1\\index.html']

>>> glob.glob("folder1/*.html") # Относительный путь

['folder1\\index.html']

>>> glob.glob("C:\\book\\folder1\\*[0-9].txt")

['C:\\book\\folder1\\file1.txt', 'C:\\book\\folder1\\file2.txt']

>>> glob.glob("C:\\book\\folder1\\*\\*.html")

['C:\\book\\folder1\\folder1_1\\index.html',

'C:\\book\\folder1\\folder1_2\\test.html']

Исключения, возбуждаемые файловыми операциями

Листинг 16.13. Обработка исключений, возбуждаемых при файловых операциях

...

try

open("C:\temp\new\file.txt")

except FileNotFoundError:

print("Файл отсутствует")

except IsADirectoryError:

print("Это не файл, а папка")

except PermissionError:

print("Отсутствуют права на доступ к файлу")

except OSError:

print("Неустановленная ошибка открытия файла")

...

Основы SQLite

Создание базы данных

cd C:\book

 

 

chcp 1251

 

 

C:\book>chcp

Текущая кодовая страница: 1251

 

 

C:\book>sqlite3.exe testdb.db

 

 

sqlite> SELECT sqlite_version();

3.8.9

sqlite> SELECT sqlite_version()

...>;

3.8.9

 

 

sqlite> -- Это однострочный комментарий

sqlite> /* Это многострочный комментарий */

sqlite> SELECT sqlite_version(); -- Комментарий после SQL-команды

3.8.9

sqlite> SELECT sqlite_version(); /* Комментарий после SQL-команды */

3.8.9

Создание таблицы

sqlite> CREATE TEMP TABLE tmp1 (pole1);

sqlite> CREATE TEMPORARY TABLE tmp2 (pole1);

sqlite>.tables

tmp1 tmp2

 

 

sqlite> SELECT name FROM sqlite_master

...> WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'

...> UNION ALL

...> SELECT name FROM sqlite_temp_master

...> WHERE type IN ('table','view')

...> ORDER BY 1;

tmp1

tmp2

 

 

sqlite> CREATE TEMP TABLE tmp1 (pole3);

Error: table tmp1 already exists

sqlite> CREATE TEMP TABLE IF NOT EXISTS tmp1 (pole3);

sqlite> PRAGMA table_info(tmp1);

0|pole1||0||0

 

 

sqlite> CREATE TEMP TABLE table (pole1);

Error: near "table": syntax error

 

 

sqlite> CREATE TEMP TABLE "table" (pole1);

sqlite>.tables

table tmp1 tmp2

 

 

sqlite> DROP TABLE "table";

sqlite> CREATE TEMP TABLE [table] (pole1);

sqlite>.tables

table tmp1 tmp2

 

 

sqlite> CREATE TEMP TABLE tmp3 (p1 INTEGER, p2 INTEGER,

...> p3 INTEGER, p4 INTEGER, p5 INTEGER);

sqlite> INSERT INTO tmp3 VALUES (10, "00547", 5.45, "Строка", NULL);

sqlite> SELECT * FROM tmp3;

10|547|5.45|Строка|

sqlite> SELECT typeof(p1), typeof(p2), typeof(p3), typeof(p4),

...> typeof(p5) FROM tmp3;

integer|integer|real|text|null

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (p1 INTEGER PRIMARY KEY);

sqlite> INSERT INTO tmp3 VALUES (10); -- Нормально

sqlite> INSERT INTO tmp3 VALUES (5.78); -- Ошибка

Error: datatype mismatch

sqlite> INSERT INTO tmp3 VALUES ("Строка"); -- Ошибка

Error: datatype mismatch

sqlite> INSERT INTO tmp3 VALUES (NULL);

sqlite> SELECT * FROM tmp3;

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (p1 TEXT);

sqlite> INSERT INTO tmp3 VALUES ("00012.86");

sqlite> INSERT INTO tmp3 VALUES ("52.0");

sqlite> SELECT p1, typeof(p1) FROM tmp3;

00012.86|text

52.0|text

sqlite> SELECT CAST (p1 AS INTEGER) FROM tmp3;

sqlite> SELECT CAST (p1 AS NUMERIC) FROM tmp3;

12.86

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (p1, p2 INTEGER DEFAULT 0);

sqlite> INSERT INTO tmp3 (p1) VALUES (800);

sqlite> INSERT INTO tmp3 VALUES (5, 1204);

sqlite> SELECT * FROM tmp3;

800|0

5|1204

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (id INTEGER,

...> t TEXT DEFAULT CURRENT_TIME,

...> d TEXT DEFAULT CURRENT_DATE,

...> dt TEXT DEFAULT CURRENT_TIMESTAMP);

sqlite> INSERT INTO tmp3 (id) VALUES (1);

sqlite> SELECT * FROM tmp3;

1|13:21:01|2015-04-14|2015-04-14 13:21:01

sqlite> /* Текущая дата на компьютере: 2015-04-14 16:21:01 */

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (p1, p2 TEXT COLLATE NOCASE);

sqlite> INSERT INTO tmp3 VALUES ("abcd", "abcd");

sqlite> SELECT p1 = "ABCD" FROM tmp3; -- Не найдено

sqlite> SELECT p2 = "ABCD" FROM tmp3; -- Найдено

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (

...> p1 INTEGER CHECK(p1 IN (10, 20)));

sqlite> INSERT INTO tmp3 VALUES (10); -- OK

sqlite> INSERT INTO tmp3 VALUES (30); -- Ошибка

Error: constraint failed

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (id INTEGER PRIMARY KEY, t TEXT);

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка1");

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка2");

sqlite> SELECT * FROM tmp3;

1|Строка1

2|Строка2

sqlite> DELETE FROM tmp3 WHERE id=2;

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка3");

sqlite> SELECT * FROM tmp3;

1|Строка1

2|Строка3

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (

...> id INTEGER PRIMARY KEY AUTOINCREMENT,

...> t TEXT);

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка1");

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка2");

sqlite> SELECT * FROM tmp3;

1|Строка1

2|Строка2

sqlite> DELETE FROM tmp3 WHERE id=2;

sqlite> INSERT INTO tmp3 VALUES (NULL, "Строка3");

sqlite> SELECT * FROM tmp3;

1|Строка1

3|Строка3

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (t TEXT);

sqlite> INSERT INTO tmp3 VALUES ("Строка1");

sqlite> INSERT INTO tmp3 VALUES ("Строка2");

sqlite> SELECT ROWID, OID, _ROWID_, t FROM tmp3;

1|1|1|Строка1

2|2|2|Строка2

sqlite> DELETE FROM tmp3 WHERE OID=2;

sqlite> INSERT INTO tmp3 VALUES ("Строка3");

sqlite> SELECT ROWID, OID, _ROWID_, t FROM tmp3;

1|1|1|Строка1

2|2|2|Строка3

sqlite> DROP TABLE tmp3;

 

 

sqlite> CREATE TEMP TABLE tmp3 (

...> id UNIQUE ON CONFLICT REPLACE, t TEXT);

sqlite> INSERT INTO tmp3 VALUES (10, "s1");

sqlite> INSERT INTO tmp3 VALUES (10, "s2");

sqlite> SELECT * FROM tmp3;

10|s2

sqlite> DROP TABLE tmp3;

Вставка записей

sqlite> CREATE TABLE user (

...> id_user INTEGER PRIMARY KEY AUTOINCREMENT,

...> email TEXT,

...> passw TEXT);

sqlite> CREATE TABLE rubr (

...> id_rubr INTEGER PRIMARY KEY AUTOINCREMENT,

...> name_rubr TEXT);

sqlite> CREATE TABLE site (

...> id_site INTEGER PRIMARY KEY AUTOINCREMENT,

...> id_user INTEGER,

...> id_rubr INTEGER,

...> url TEXT,

...> title TEXT,

...> msg TEXT);

 

 

sqlite> INSERT INTO user (email, passw)

...> VALUES ('unicross@mail.ru', 'password1');

sqlite> INSERT INTO rubr VALUES (NULL, 'Программирование');

sqlite> SELECT * FROM user;

1|unicross@mail.ru|password1

sqlite> SELECT * FROM rubr;

1|Программирование

sqlite> INSERT INTO site (id_user, id_rubr, url, title, msg)

...> VALUES (1, 1, 'http://wwwadmin.ru', 'Название', 'Описание');

 

 

sqlite> INSERT INTO rubr VALUES (NULL, 'Название 'в кавычках'');

Error: near "в": syntax error

 

 

sqlite> INSERT INTO rubr VALUES (NULL, "Название 'в кавычках'");

sqlite> INSERT INTO rubr VALUES (NULL, 'Название ''в кавычках''');

sqlite> SELECT * FROM rubr;

1|Программирование

2|Название 'в кавычках'

3|Название 'в кавычках'

 

 

sqlite> INSERT OR REPLACE INTO rubr

...> VALUES (2, 'Музыка');

sqlite> SELECT * FROM rubr;

1|Программирование

2|Музыка

3|Название 'в кавычках'

 

 

sqlite> REPLACE INTO rubr VALUES (3, 'Игры');

sqlite> SELECT * FROM rubr;

1|Программирование

2|Музыка

3|Игры



Поделиться:


Последнее изменение этой страницы: 2016-06-23; просмотров: 230; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.93.210 (0.036 с.)