Python: рекурсивный проход по папкам

Простенько двигаемся по папочкам и просто так считаем чего сколько. Для *nix придется сменить слеш в пути. А работать всё равно будет.

import os   
# settings: src dir 
sSrc='d:\\Install'   

def show_all(sSrc,iDirs=0,iFiles=0): 
    for file in os.listdir(sSrc): 
        # full pathname  
        file=os.path.join(sSrc,file)   
        if os.path.isdir(file): 
            # if directories 
            print '['+file+']' 
            iDirs+=1 
            iDirs,iFiles=show_all(file,iDirs,iFiles) 
        else: 
            # else files 
            print ' '+file 
            iFiles+=1 
    return iDirs,iFiles

iDirs,iFiles=show_all(sSrc,0,0)   

print """
total dirs: """,iDirs,""" 
total files: """,iFiles

Python: установка PIL

Если при попытке выполнить скрипт, мы видим что-то вроде.. "ImportError: No module named image" Сие озночает что надобно установить PIL. А как? А очень просто!

# для убунту
sudo apt-get install python-imaging
Ну а для win придется сползать на оф страничку, скачать и установить соответствующую версию PIL.

Python: ряд Фибоначчи

Я даже не знаю к чему это я. Честно. Вот вдруг захотелось.

def next(n1,n2): 
  return n1+n2 

n1=0
n2=1 
nn=0

for i in range(1,30): 
  nn=next(n1,n2) 
  if i%2==0: 
    n1=nn 
  else: 
    n2=nn 
    print nn
Так вот это была полностью детская реализация. Вот она красота на самом деле (из книжки Гвидо ван Россума):
def fib(n): 
  a, b = 0, 1 
  for i in range(1,n): 
    print b, 
    a, b = b, a+b 

fib(20) 
Чтобы понять зачем после переменной запятая в принте, стоит позапускать софтинку в консольке с запятой и без. Для меня было ново. И вроде мелочь, а приятно.

Windows XP: Ubuntu Server на VirtualBox. Настройка сети.

Ад. По сравнению с VMWare. Странно но в Vista всё работало и в третьем VirtualBox-е. Здесь же речь пойдет о VirtualBox 2.2 С третьим под WinXP я как ни мучался - ничего у меня не вышло. Под вистой тройка взлетает без проблем. Итого, задача: есть Ubuntu Server как клиент ОС и WinXP как сервер ОС. Необходимо чтобы ось клиент ходила в интернет без проблем, видела машины в локальной сети и машины из локальной сети могли до неё достучаться. В моем случае расклад такой: есть wifi-роутер который раздает ипы для клиентов в диапазоне 192.168.1.2\254, сам он 192.168.1.1 понятно. Есть ноут, его ип - 2. На нем WinXP и VirtualBox с Ubuntu. Надо всю эту братию подружить. Ставится виртбокс без особых проблем, но с большим количеством воплей про то что это ПО не тестировалось на совместимость с WinXP (кстати в примере речь идет о WinXP SP3). Вопли игнорируем, виртбокс ставим. Поднимаем в нем Ubuntu. Добираемся до сетевых дел. Идем в настройки сети (для этого виртуальную машину надо остановить). Там устанавливаем два сетевых адаптера вот таким вот образом:

этот адаптер у нас будет смотреть в интернет, внешний мир

VirtualBox 2.2 настройка сети

а это тот самй пресловутый мост из VirtualBox Bridged Networking Driver

VirtualBox 2.2 настройка сети
Вот так вот. Вроде проще некуда. Казалось бы. Дальше запускаем виртуальную машину и топаем в настройки сети. По умолчанию соединение которое создал VirtualBox (VirtualBox Host-Only Network) у меня было с адресом 192.168.56.1, менять его я не стал, но вообще уверен что изменить его совсем не проблемно. Идем править интерфейсы в /etc/networking/interfaces (кстати, на всякий случай про положение адаптеров можно почитать вот так dmesg | grep eth) Выглядеть интерфейсы после настройки у меня стали примерно так:
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth2
iface eth2 inet dhcp

auto eth3
iface eth3 inet static

address 192.168.56.10
netmask 255.255.255.0
Пояснять тут в общем-то нечего. Разве что ip виртуалки в локальной сети зафиксировался на 10-м номере. Дальше перезапускаем сеть и всё. В общем-то всё очень просто. Но я честно уже не раз это делаю и всё равно забываю постоянно, что и как должно быть. Может теперь запомню :)
это финал после нехитрых
sudo ifconfig eth2 up
sudo ifconfig eth3 up
sudo /etc/init.d/networking restart

VirtualBox 2.2 настройка сети
Вот и всё. Ставим LAMP и девелопим в своё удовольствие в условиях значительно приближенных к боевым. Кстати мы при этом ничего не украли, софт-то свободный :) Приятного программирования.

Как посчитать количество строк в файле?

Для примера посчитаем файлы и папки в каталоге:

ls -1 /home | wc -l
cat 123.txt | wc -l