Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 221

>>> fout = open('poems/mcintyre/the_good_man', 'wt')

>>> fout.write('''Cheerful and happy was his mood,

... He to the poor was kind and good,

... And he oft' times did find them food,

... Also supplies of coal and wood,

... He never spake a word was rude,

... And cheer'd those did o'er sorrows brood,

... He passed away not understood,

... Because no poet in his lays

... Had penned a sonnet in his praise,

... 'Tis sad, but such is world's ways.

... ''')

344

>>> fout.close()

Наконец, проверим, что у нас получилось. Лучше бы ему там быть:

>>> os.listdir('poems/mcintyre')

['the_good_man']

Программы и процессы

287

Изменяем текущий каталог

с помощью функции chdir()

С помощью этой функции вы можете переходить из одной папки в другие. По-

кинем текущую папку и проведем немного времени в каталоге poems:

>>> import os

>>> os.chdir('poems')

>>> os.listdir('.')

['mcintyre']

Перечисляем совпадающие файлы

с помощью функции glob()

Функция glob() ищет совпадающие имена файлов или каталогов с помощью пра-

вил оболочки системы Unix, а не более полного синтаксиса регулярных выраже-

ний. Эти правила выглядят так:

 * — совпадает со всем (в регулярных выражениях аналогом этого правила

является .*);

 ? — совпадает с одним символом;

 [abc] — совпадает с символами a, b или c;

 [!abc] — совпадает со всеми символами, кроме a, b или c.

Получим все файлы и каталоги, имена которых начинаются с буквы m:

>>> import glob

>>> glob.glob('m*')

['mcintyre']

Как насчет файлов и каталогов с именами, состоящими из двух символов?

>>> glob.glob('??')

[]

Я думаю о слове из восьми букв, которое начинается с m и заканчивается на e:

>>> glob.glob('m??????e')

['mcintyre']

Как насчет чего-то, что начинается с букв k, l или m и заканчивается на букву e?

>>> glob.glob('[klm]*e')

['mcintyre']