Показват се публикациите с етикет python. Показване на всички публикации
Показват се публикациите с етикет python. Показване на всички публикации

10.06.2020 г.

IP mask to prefix and prefix to ip mask

# Mask to prefix

def mask_to_prefix(mask):
    mask = '255.255.255.224'
    conv_mask = [bin(int(i))[2:] for i in mask.split('.')]
    prefix = sum([x.count('1') for x in conv_mask])
    print(prefix)

# Prefix to mask

def prefix_to_mask(prefix):
    mask = '1'*prefix
    mask = [_ for _ in "".join(reversed(mask.zfill(32)))]
    for _, c in enumerate(mask):
        if _ in [8, 16, 24]:
            mask[_] = '.' + c
        else:
            mask[_] = c
    print(".".join([str(int(x, 2)) for x in "".join(mask).split('.')]))

16.03.2018 г.

Python convet number to word's

import random
#HARD CODE PARAM
delim = 3
words = ["милиона", "хиляди", "", ""]
number = "".join([str(random.choice(range(1,11))) for i in range(1, random.choice(range(4, 7)))])
l = len(number)
print(number)

numbers = {
    1:"Едно", 2:"Две", 3:"Три", 4:"Четири", 5:"Пет", 6:"Шест", 7:"Седем", 8:"Осем", 9:"Девет",
    10:"Десет", 11:"Единадест", 12:"Дванадесет", 13:"Тринадесет", 14:"Четринадесет", 15:"Петнадесет",
    16:"Шестнадесет", 17:"Седемнадесет", 18:"Осемнадесет", 19:"Деветнадесет", 20:"Двадесет",
    30:"Тридесет", 40:"Четидредесет", 50:"Петдесет", 60:"Шейсет", 70:"Седемдесет", 80:"Осемдесет",
    90:"Деветдесет", 100:"Сто", 200:"Двеста", 300:"Триста", 400:"Четиристотин", 500:"Петстотин",
    600:"Шестотин", 700:"Седемстотин", 800:"Осемстотин", 900:"Деветстотин"
}


def coma_delimiter_number(number):
    ''' Разделя числото после се сплитва и се маха празният символ '''
    result = "".join((i%delim==l%delim)*","+c for i, c in enumerate(number))
    return list(map(int, list(filter(None,result.split(",")))))



def razbiva_chisloto(n):
    ''' Върти числото към стринг '''
    if (len(str(n)) == 3 and n%100==0):
        return("{}".format(numbers[n]))

    elif (len(str(n)) == 3 and n%100!=0):
        a, b = n-n%100, n%100
        if b > 20:
            c, d = b-b%10, b%10
            return("{} {} и {}".format(numbers[a], numbers[c], numbers[d]))
        else:
            return("{} и {}".format(numbers[a], numbers[b]))

    elif (len(str(n)) == 2) and 1<n<=20:
        return((numbers[n]))

    elif (len(str(n)) == 2) and n > 20:
        a, b = n-n%10, n%10
        return("{} и {}".format(numbers[a], numbers[b]))

    else:
        return(numbers[n])


if __name__ == '__main__':
    result = coma_delimiter_number(number)
    convert = []
    for i, k in enumerate(result):
        convert.append(razbiva_chisloto(k))

    if len(convert) == 2:
        print("{} хиляди {}".format(convert[0], convert[1].lower()))

    elif len(convert) == 3:
        print("{} милиона {}  хиляди {}".format(convert[0], convert[1].lower(), convert[2].lower()))
       
    else:
        print("{}".format(convert[0].capitalize()))

24.09.2017 г.

Python compare data from sqlite database is between two date

#import module
import sqlite3

#database path is here
database = 'test.db'

#Testing in the data
#25.09.2017 27.09.2017
#01.10.2017 03.10.2017

class db_conn:
    ''' Class connect main '''
    def __init__(self, db, Fdata=None, Sdata=None):
        self.db = db
        self.Fdata = Fdata
        self.Sdata = Sdata
        self.con = sqlite3.connect(self.db)

    def insert(self):
        ''' insert into database two value's '''
        self.con.execute("INSERT INTO praznik (Fdata, Sdata) VALUES (?, ?)", (self.Fdata, self.Sdata))
        self.con.commit()
        self.con.close()


    def show_table(self):
        ''' Use for select from database '''
        self.cur = self.con.cursor()
        self.cur.execute("SELECT * from praznik")
        for row in self.cur:
            print("First Data {fdata} - Second Data {sdata}".format(fdata=row[1], sdata=row[2]))
        self.con.close()


    def check_period(self, fdata_check, ldata_check):
        ''' check period is valid or not '''
        self.fdata_check = fdata_check
        self.ldata_check = ldata_check
        self.cur = self.con.cursor()
        self.cur.execute("SELECT * from praznik")
        for row in self.cur:
            if row[1] <= self.ldata_check and row[2] >= self.fdata_check:
                print("Problem")
                break
            else:
                print("Look Good")
                break
        self.con.close()

3.09.2015 г.

Python copy folder from USB to map drive in windows machine

#! --*-- coding:utf-8 --*--

###################################
#    Uses for copy folder from,    #
#    USB drive to map used device  #
#                                  #
#    Do not edit by hand           #
###################################    

#Imort requeare module's
import os,subprocess,shutil,time,sys

#General param is here
remote_ip = 'ip'                    #ip for server
remote_share_folder = 'share'        #share folder from server
remote_user = 'Administrator'        #Username for server
remote_pass = 'pass'                #password name for server
local_folder = r'c:\test'            #local folder where looking for dirname
mapping_char = 'G:'                    #charackter for maping

date_now = str(time.ctime()).split()[2]+str(time.ctime()).split()[1]+str(time.ctime()).split()[-1]

#--------------------Begin Function ----------------------------------#

#first function


def copyDirectory(src, dest):
    """
    used shutil.copytree for copy from src to dest
    if have somthing wrong like folder exists copy stop
    and script close
    """
    try:
        shutil.copytree(src, dest)
        print "Success Copied folder!"
        #print (src,dest)
    # Directories are the same
    except:
        print "Somthing wrong with copy Bye!"
        sys.exit(1)

#second function

def clear_folder(local_folder):
    """
    rmtree delete folder even folder is not empty
    then makedirs recovers folder
    """
    shutil.rmtree(local_folder)
    os.makedirs(local_folder)

#third function
def list_usb_flash():
    """
    chdir use to goto in usb drive, then list drive for file
    for eny file give full path and parse to first function
    finaly up one step and begin second function
    """
    os.chdir(local_folder)
    for root,dirname,filename in os.walk(local_folder):
        for f in dirname:
            fol = os.path.join(root,f)
            copyDirectory(fol, (mapping_char+'\\'+f+"-"+date_now))
    os.chdir(r'c:\\')
    clear_folder(local_folder)
                
                

#---------------End function's------------------------------------------#    

if os.path.isdir(local_folder):
    print "Folder exists now begin..."
    if os.path.isdir(mapping_char):
        list_usb_flash()
        
    else:
        maping = subprocess.Popen('net use %s \\\\%s\%s /user:%s %s' % (mapping_char,remote_ip,remote_share_folder,remote_user,remote_pass),shell=True, stdout=subprocess.PIPE)
        list_usb_flash()
        
else:
    print "USB Driver maybe not mounted!!!"

.

22.07.2015 г.

Python backup firebird base

 import os,shutil, subprocess  
 from datetime import datetime  
 file_destination = ["/home/borko/base/firebird.fdb"]  
 #Must change path to folder if user not called "borko"  
 copy_destination = "/home/borko/base/archive/"  
 #Full path to gbak  
 gback_file = "/opt/firebird/bin/gbak"  
 #Get time and date to add into archive  
 date = str(datetime.now())  
 datetime = date.replace(' ','')  
 count=0  
 #Input how much file save in folder!!!!  
 save_file = 2  
 #Set params for Gbak  
 server='127.0.0.1'  
 user = "SYSDBA"  
 password = "masterkey"  
 #List with older file which must delete  
 list_file_delete = []  
 #Function check for problems  
 def check_file_and_filder(folder,name):  
     if not os.path.isdir(folder):  
         try:  
             os.makedirs(folder)  
         except:  
             pass  
     for file_search in name:  
         if not os.path.isfile(file_search):  
             print "File not exists"  
 #Function calculate file in folder  
 def calculate():  
     count = 0  
     del_count=1  
     for i in file_destination:  
         search_name = i.split("/")[-1]  
         for search in os.listdir(copy_destination):  
             if search.startswith(search_name):  
                 list_file_delete.append(os.path.join(copy_destination,search))  
                 count+=1  
         if count > save_file:  
             print "Poveche sa s %d" % (count-save_file)  
             how_much = (count-save_file)  
             new_list_for_delete = {i:float(os.stat(i).st_mtime) for i in list_file_delete}  
             elem_to_delete = dict(list(sorted(new_list_for_delete.items(), key=lambda x: x[1]))[:(count-save_file)])  
             for del_elem in elem_to_delete.keys():  
                 os.remove(del_elem)  
 #Function mace backup  
 def backup_resurse():  
     for i in file_destination:  
         backup = subprocess.Popen('''{0} -v -t -user {1} -password {2} {3}:{4} {5}{6}.fbk'''  
         .format(gback_file,user,password,server,i,copy_destination, i.split("/")[-1]+datetime),shell=True)  
 #Start the magic  
 if __name__ == "__main__":  
     check_file_and_filder(copy_destination,file_destination)  
     calculate()  
     backup_resurse()  

1.05.2015 г.

Tkinter menu for play movie's found in comouter

#--*-- coding:utf-8 --*--
#-----------Import Some module's-------------------------------------
from Tkinter import *
from tkFileDialog   import askopenfilename
import os, subprocess

#-----------Define Global Variable here------------------------------

#List of variant movie extensions
file_implement=["mkv", "avi", "mp4"]
#Define dictionary for add name and readlpath
real_path=[]
d={}

#-----------Define Function's----------------------------------------

def search_movie():
    """Search for movie in target folder"""
    movie_sr_name=[]
    for root,dirname,filename in os.walk("/home/borko/Video"):
        for movie_file in filename:
            if movie_file.startswith(tuple([i for i in ("Sample", "sample")])):
                continue
        if movie_file.endswith(tuple([i for i in file_implement])):
            d[movie_file]=os.path.join(root,movie_file)    


def Popalni():
    """After start serch_movie insert result in mylist Form"""
    search_movie()
    for i in sorted(d.keys()):
        mylist.insert(END,i)
        mylist.see(END)
        mylist.update()


def choose():
    """Sort dictionary and load real path to movie"""
    firstIndex =  mylist.curselection()[0]
    val =  d[sorted(d.keys())[firstIndex]]
    os.system("%s '"'%s'"'" % ("vlc", val))
 
  
def Open_Directory():
    """Use for add additional file"""
    name = askopenfilename()
    print name


#-----------Tkinter define----------------------------------------
root = Tk()
root.title("Film's playlist")
root.geometry("500x250")
#Scrol bar settings
scrollbar = Scrollbar(root)
scrollbar.pack( side = RIGHT, fill=Y )

#Menu Bar settings
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Load_All", command=Popalni)
filemenu.add_command(label="Open_Directory", command=Open_Directory)
filemenu.add_command(label="Edit")
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="Menu", menu=filemenu)
root.config(menu=menubar)

mylist = Listbox(root, yscrollcommand = scrollbar.set , bg="#99CC99")

frame=Frame(root)
frame.pack()
#Label(text="Anchor").pack(side=LEFT)
chooseButton = Button(frame, text="Load_Movie", command=Popalni ,bg="#FFCC00")
chooseButton.pack(side=LEFT,anchor=NW)
chooseButton1 = Button(frame, text="Run_Movie", command=choose, bg="#FFCC00")
chooseButton1.pack(anchor=NW)
mylist.pack( side = LEFT, fill = BOTH, expand=1 )
scrollbar.config( command = mylist.yview )


if __name__ == "__main__":
 mainloop()


7.04.2015 г.

Python search for duplicated files


##################################################
#   Search for duplicated files without,                                         #
#   meaningless file exstension                                                     #
#     NOT EDIT BY HAND!!!                                                   #
##################################################

#IMPORT MODULES FOR SCRIPT

import hashlib, os
from itertools import *
from operator import itemgetter

#THIS USE FOR GIVE MD5 FOR FILE'S

md = hashlib.md5()
#Directory = os.getcwd()
#ADD NEEDED LIST
Dir = "C:\\SCRIPT"
_File = []       #CONTAINED PATH FOR FILE
_File_H = []     #CONTAINED MD5 CODE FOR FILE
_duplicated = []   #CONTAINED DUPLIATED
_duplicated_sravnqva = [] #NEED FOR ZIP
subdirlist = []    #MAY DELETED IF YOU WON USED FOR FUNCTION search_file

#SEARCH WITH OS.LISTDIR NOT WORKING FOR MOMENT
# def search_file(Dir):

#  for file in os.listdir(Dir):
#   if os.path.isfile(file):
#    yield os.path.join(Dir,file)
#   else:
#    subdirlist.append(os.path.join(Dir, file))
#    try:
#     for subdir in subdirlist:
#      search_file(subdir)
#    except:
#     print "Somting wrong"

#SEARCH WITH OS.WALK

def search_os_walk(Dir):
    for path,dirlist,filelist in os.walk(Dir):
        for fn in filelist:
            yield os.path.join(path,fn)

#FUNCTION USE FOR ENCRIPT FILE TO MD5
def md_5(filePath):
    with open(filePath, 'rb') as fh:
        m = hashlib.md5()
        while True:
            data = fh.read(8192)
            if not data:
                break
            m.update(data)
        return m.hexdigest()

#SEARCH FOR FILE AND APPEND THEM TO REQUIRED LIST (LOOKED ABOVE FOR #DESCRIPTION'S )

for file in search_os_walk(Dir):
     _File.append(file)
     _File_H.append(md_5(file))

for f,z in (izip(_File, _File_H)):
    if z in _duplicated:
         _duplicated_sravnqva.append(z)
         _duplicated.append(z)

print "*"*80
_Dupliated =  [x[0] for x in zip(_File, _File_H) if x[1] in _duplicated_sravnqva]
one= []
two= []
for i in _Dupliated:
    one.append(i)
    two.append(md_5(i))

#RESULT IN DICTIONARI, NEEDED FOR FUNCTION GROUPBY

d = dict(zip(one,two))
di = sorted(d.iteritems(), key=itemgetter(1))
for k, g in groupby(di, key=itemgetter(1)):
#IF YOU WHANT TO SHOW IN COLUMN UNCHECK BOTTOM ROW'S
    # for i,z  in enumerate(map(itemgetter(0), g)):
    #  print i,z
    print "Duplicated ", map(itemgetter(0), g)
raw_input()

6.04.2015 г.

Python order dictionary by Value, hailstone sequence

import operator
def fff(number):
    se = [number]
    while number > 1:
       number = 3*number+1 if number%2 else number/2
       se.append(number)
    return  sum(se)

result={}

for i in range(1,20):
    result[i]=fff(i)
 
print max(result.items(), key=operator.itemgetter(1))

Python script for listen radion station online

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 18 10:24:56 2014

@author: borko-8.1
"""

import platform
import os
print "---------------Radio Station's----------------"
trance={u'Трансе FM': 'http://listen.trance.fm/1/320', u'Elit trance music': 'http://www.slusham.com/radio/fmplus.m3u', u'Elit houce music': 'http://eilo.org:8000/house.m3u'}

bgradio={u'Energy':'http://80.72.68.217/nrj.ogg.m3u', u'Рок радио':'http://80.72.68.217/radio1rock_low.ogg', u'Радио Melody':'http://live.btvradio.bg/melody.mp3.m3u',u'Радио Nova':'http://149.13.0.81/nova.aac.m3u'}


def menu():
    print u"1 за меню"
    print u"2 за избор на жанр"
    print u"3 за изход"
    cmenu=0
    while cmenu !=3:
        print
        cmenu=input("Enter choice :")
        if cmenu == 1:
            menu()
            print
        elif cmenu == 2:
            chanel()
            print
        print
    
def chanel():
    print u"1 за трансе"
    print u"2 за БГ радио"
    print u"3 за изход"
    choice=0
    while choice!=3:
        choice = input("Choice radio vid :")
        if choice == 1:
            for i in range(len(trance)):
                print i, "-",trance.keys()[i]
            print
            tranceradio = input("Play radio")
            if platform.system() == "Windows":
                print "Windows system "
                path = "C:\\Program Files (x86)\\VideoLAN\\VLC"
                os.chdir( path )
                player = "vlc.exe "
                chanel = trance.values()[tranceradio]
                start = player+chanel
                os.system(start)
            if platform.system() == "linux":
                print "Linux system"
                player = "cvlc -vvv "
                chanel = trance.values()[tranceradio]
                start = player+chanel
                os.system(start)
        if choice == 2:
            for i in range(len(bgradio)):
                print i, "-",bgradio.keys()[i]
            print
            tranceradio = input("Push radio")
            if platform.system() == "Windows":
                print "Windows system "
                path = "C:\\Program Files (x86)\\VideoLAN\\VLC"
                os.chdir( path )
                player = "vlc.exe "
                chanel = bgradio.values()[tranceradio]
                start = player+chanel
                os.system(start)
            if platform.system() == "linux":
                print "Linux system"
                player = "cvlc -vvv "
                chanel = bgradio.values()[tranceradio]
                start = player+chanel
                os.system(start)


#if __name__ == "__main__":
#    menu()
menu()
raw_input()

26.03.2015 г.

Python script for search file type with options for deleted them

#########################################

#  Script uses for deleted searched with#

#         extension file!!              #

#########################################

# --*-- coding: utf-8 --*--


import os, argparse, time


# parser = argparse.ArgumentParser(description='Process for deleted file')

# parser.add_argument('integers', metavar='N', type=int, nargs='+',

#                    help='an integer for the accumulator')

# args = parser.parse_args()

# print(args.accumulate(args.integers))


#Asking for Begin Dirname and search type


dirname = raw_input("Enter dirname from begin :")

Ending = raw_input("Enter exsension for deleted :")

acumulate_result = []   #Use for acumulate result if whant to deleted it


def Searc_Torrent(dirname):


 """Function use for search file with

 with help module os.walk"""

    if os.path.isdir(dirname) and os.path.exists(dirname):

        for root, path, filename in os.walk(dirname):

            for fn in filename:

                 if fn.endswith(Ending):

                    yield os.path.join(dirname,fn)

     else:

        print "\n%s is not looking by folder" % dirname


    

def show_torrent():


 """Function use for show result and add them to list

 with name acumulate_result"""

    begin = time.time()

    for f in Searc_Torrent(dirname):

         print f

    acumulate_result.append(f)

     ending = time.time()

    print "Search finish with %s secund's" % (ending-begin)



def delete_result():


 """Function use for delete result"""

    for deleted in acumulate_result:

        yield deleted



if __name__ == "__main__":

 show_torrent()

 queston = raw_input("Do you whant to delete result ? (Y/N) :")

 if queston.lower() == 'y':
    print "Deleted"

    for deleted in delete_result():

        os.unlink(deleted)


 elif queston.lower() == 'n':

        print "Good bye"

 else:
     print "Good bye with wron answer!!!"

25.03.2015 г.

python script for search duplicated file

##################################################
#   Search for duplicated files without,         #
#   meaningless file exstension                  #
#     NOT EDIT BY HAND!!!                        # 
##################################################

#IMPORT MODULES FOR SCRIPT
import hashlib, os, locale, fileinput, platform, logging
from itertools import *
from operator import itemgetter
#THIS USE FOR GIVE MD5 FOR FILE'S
md = hashlib.md5()
encoding = locale.getdefaultlocale()[1]
logging.basicConfig(filename='logfile.log', level=logging.DEBUG, \
format='%(message)s', filemode="w")

Dir = raw_input("Enter destination for begin use \\ : ")
extension = raw_input("Enter extension for file's : ")
#Dir = "C:\\script"
#extension = "py"
_File = []       #CONTAINED PATH FOR FILE
_File_H = []     #CONTAINED MD5 CODE FOR FILE
_duplicated = []   #CONTAINED DUPLIATED
_duplicated_sravnqva = [] #NEED FOR ZIP
subdirlist = []    #MAY DELETED IF YOU WON USED FOR FUNCTION search_file
one= []      #ADD FILEDPUPLICATES
two= []      #ADD MD5 FOR DUPLICATE FILE

 #SEARCH WITH OS.LISTDIR NOT WORKING FOR MOMENT
 # def search_file(Dir):
 
 #  for file in os.listdir(Dir):
 #   if os.path.isfile(file):
 #    yield os.path.join(Dir,file)
 #   else:
 #    subdirlist.append(os.path.join(Dir, file))
 #    try:
 #     for subdir in subdirlist:
 #      search_file(subdir)
 #    except:
 #     print "Somting wrong"

 #SEARCH WITH OS.WALK
def search_os_walk(Dir):
  for path,dirlist,filelist in os.walk(Dir):
    for fn in filelist:
      if fn.endswith("."+extension):
        try:
          yield os.path.join(path,fn)
        except IOError, e:
          print "Not allowed", e


 #FUNCTION USE FOR ENCRIPT FILE TO MD5
def md_5(filePath):
  try:
    with open(filePath, 'rb') as fh:
      m = hashlib.md5()
      while True:
        try:
          data = fh.read(8192)
          if not data:
            break
      m.update(data)
  except IOError, e:
    print "Not allowerd Basi", e
    return m.hexdigest()
  except IOError, e:
    pass


 #SEARCH FOR FILE AND APPEND THEM TO REQUIRED LIST (LOOKED ABOVE FOR DESCRIPTION'S )

for file in search_os_walk(Dir):

   _File.append(file)
   _File_H.append(md_5(file))


for f,z in (izip(_File, _File_H)):

   if z in _duplicated:
    _duplicated_sravnqva.append(z)
   _duplicated.append(z)


print "*"*80
_Dupliated =  [x[0] for x in zip(_File, _File_H) if x[1] in _duplicated_sravnqva]

for i in _Dupliated:

   one.append(i)
   two.append(md_5(i))

#RESULT IN DICTIONARI, NEEDED FOR FUNCTION GROUPBY
d = dict(zip(one,two))

di = sorted(d.iteritems(), key=itemgetter(1))
for k, g in groupby(di, key=itemgetter(1)):

 #IF YOU WHANT TO SHOW IN COLUMN UNCHECK BOTTOM ROW'S
      #~ for i,z  in enumerate(map(itemgetter(0), g)):
       #~ logging.info(str(i),(z))
   info = map(itemgetter(0), g)
   print "Duplicated ", info
   logging.info(str(info))
   print "\n"
answer = raw_input("Do you whant to view txt file with result (y/n) :")
if answer.lower() != 'y':
  pass
else:
  File = open('logfile.log')
  for line in list(File.readlines()):
    print line

21.03.2015 г.

Direct change file with python use with use fileinput

1
2
3
4
5
6
7
8
import re
import fileinput
fname = "123.txt"
#( file has line: Ala bala 123)

for line in fileinput.FileInput(fname, inplace=1):
     line = re.sub(r'Ala bala \d{3}', "New Wine", line)
     print line