Найти - Пользователи
Полная версия: Print limit!!!
Начало » Python для новичков » Print limit!!!
1
avdoshkin
Всем привет!
Есть вывод:
10.1.11.6
10.1.11.8
10.1.11.22
10.1.11.23
10.1.11.24
10.1.11.25
10.1.11.26

вывод может быть из 200 строк и более.
как задать вывод чтобы показывал например первые 5 строк. Например как mysql select * from user_log limit 2;
regall
Можно код, который делает вывод?
avdoshkin
regall
Можно код, который делает вывод?
a1 = raw_input("Input ipadd or vlan:")

def search():
if '10.' in a1:
a2 = '%s.%s.%s.' %(a1.split('.')[0],a1.split('.')[1],a1.split('.')[2])
host(a2)
elif not '.' in a1:
for fname in glob.glob('/etc/iptab/vlan%s.txt' %a1):
for line in open(fname):
if 'vlanident' in line:
a2 = '%s.%s.%s.' %((line.split()[5]).split('.')[0], (line.split()[5]).split('.')[1], (line.split()[5]).split('.')[2])
host(a2)

def host(a2):
for y in range(1,253):
host = '%s%s' %(a2, y)
date = fin(host)
if date:
ip = date
else:
ip = "[!IP_ADDRESS FREE!]"
res = '%s\t%s' %(host, ip)
if 'FREE' in res:
print res

def fin(host):
for fname in glob.glob('/etc/iptab/vlan*.txt'):
for line in open(fname):
if not '#' in line and host in line:
return line.split()[0]
regall
if 'FREE' in res and y <=5:
print res
avdoshkin
regall
if 'FREE' in res and y <=5:
print res
этот код не выход из ситуации, т.к. y=1-252, следовательно если занято с 1-6 то вывода не будет.
regall
def host(a2):
free_count = 0
for y in range(1,253):
host = '%s%s' %(a2, y)
date = fin(host)
if date:
ip = date
else:
ip = "[!IP_ADDRESS FREE!]"
res = '%s\t%s' %(host, ip)
if 'FREE' in res and free_count < 5:
free_count += 1
print res
avdoshkin
regall
def host(a2):
free_count = 0
for y in range(1,253):
host = '%s%s' %(a2, y)
date = fin(host)
if date:
ip = date
else:
ip = "[!IP_ADDRESS FREE!]"
res = '%s\t%s' %(host, ip)
if 'FREE' in res and free_count < 5:
free_count += 1
print res
regall, Спасибо большое, еще и напомнил.
PooH
А я бы такую утилиту на генераторах строил. Что-то типа:
def find_files(pattern):
if pattern.startswith('10.'):
yield '.'.join(pattern.split('.')[:-1])
elif not '.' in pattern:
for fname in glob.glob('/etc/iptab/vlan%s.txt' % pattern):
for line in open(fname):
if 'vlanident' in line:
yield '.'.join(line.split()[5].split()[:-1])

def find_ip(host):
for fname in glob.glob('/etc/iptab/vlan*.txt'):
for line in open(fname):
if not '#' in line and host in line:
return True
return False

def find_free_ip(prefix):
for n in xrange(1, 253):
ip = '%s.%d' % (prefix, n)
if not find_ip(host):
yield ip

import sys
pattern = sys.argv[1]
count = int(sys.argv[2])

for ip in (x for x,i in enumerate(find_free_ip(find_files(pattern))) if i < count):
print ip, "[!IP_ADDRESS FREE!]"
Насколько я понял исходник автора, код естественно не тестировал :)
avdoshkin
PooH
А я бы такую утилиту на генераторах строил. Что-то типа:
def find_files(pattern):
if pattern.startswith('10.'):
yield '.'.join(pattern.split('.')[:-1])
elif not '.' in pattern:
for fname in glob.glob('/etc/iptab/vlan%s.txt' % pattern):
for line in open(fname):
if 'vlanident' in line:
yield '.'.join(line.split()[5].split()[:-1])

def find_ip(host):
for fname in glob.glob('/etc/iptab/vlan*.txt'):
for line in open(fname):
if not '#' in line and host in line:
return True
return False

def find_free_ip(prefix):
for n in xrange(1, 253):
ip = '%s.%d' % (prefix, n)
if not find_ip(host):
yield ip

import sys
pattern = sys.argv[1]
count = int(sys.argv[2])

for ip in (x for x,i in enumerate(find_free_ip(find_files(pattern))) if i < count):
print ip, "[!IP_ADDRESS FREE!]"
Насколько я понял исходник автора, код естественно не тестировал :)
сильно не тестировал, т.к. получил результат да и все. PooH, сейчас твой код посмотрю, я согласен может и корявый код, но так сказать чему научился, а дальше шлифовка мастерства и естественно критика и мнения других людей.
PooH
avdoshkin
сильно не тестировал, т.к. получил результат да и все.
Я про свой код говорил :) мне его просто не на чем проверить было
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB