Ответы пользователя по тегу Python
  • Как пишутся сайты на python?

    sharlatan
    @sharlatan
    IT engineer, warehouse operative
    Привет,
    вот хорошая подборка всех плюшек по Python выложенная на GitHub
    vinta/awesome-python#CMS

    С офф сайта список хостов с поддержкой Django
    DjangoFriendlyWebHosts
    Ответ написан
    Комментировать
  • Конспект по синтаксису Python 3?

    sharlatan
    @sharlatan
    IT engineer, warehouse operative
    Я веду коспект по Python в FreeMind, выложил на GitHub.
    Может быть полезень.
    Ответ написан
    Комментировать
  • Как включить поддержку python в vim?

    sharlatan
    @sharlatan
    IT engineer, warehouse operative
    Привет,

    1.0 Найди другой пакет
    Попробуй установить другой пакет из репозитория.
    Предполагаю, ты работаешь в Debian/Ubuntu Linux.

    $: apt-cache search vim | grep vim-
    Покажет все доступные пакеты

    1.2 Скомпилируй
    Скачай исходники с GitHub
    и собери с нужными тебе примочками.

    2.0 Ссылки
    [2.1] How to install vim.full in Ubuntu?
    [2.2] Vi IMproved - enhanced vi editor
    [2.3] Building Vim from source
    [2.4] Building Vim
    Ответ написан
    4 комментария
  • Как из текстового файла БЫСТРО создать заданное количество файлов с заданным количеством строк Python?

    sharlatan
    @sharlatan
    IT engineer, warehouse operative
    Вопрос интересный и если еще актуален.
    Был вариант каждый раз смешивать исходный массив данных (текстовый файл с большим количеством строк) и брать случайное количество в заданном промежутке в файл names.txt.
    В итоге скрипт просит указать БОЛЬШОЙ файл, файл ИМЕН и ПРОМЕЖУТОК. Создаются папки из файла ИМЕН во временной директории "out_log", в каждый файл случайным образом, без повторов, вносятся строчки из БОЛЬШОГО файла.
    Тестировал на машине под Fedora 20 Workstation
    CPU Intel(R) Core(TM) i7-3770S CPU @ 3.10GHz
    RAM Kingstone KHX1600C10D3/8GX 16Gb Speed: 1333 MHz
    OSHDD Intel SSD 520

    На обработку списка из Всех городов России и 120,000,000 исходных строках в промежутку 1000-1200 ушло 0.50с

    #! /usr/bin/env python
    # File:          rndappend.py
    #
    # Created:       Sat 20 Dec 2014 16:05:30
    # Last Modified: Mon 29 Dec 2014 01:21:58
    # Maintainer:    sharlatan, <sharlatanus@gmail.com>
    # License:       Same as Python (GPL)
    # Credits:       www.toster.ru/q/166037
    #
    """
    -=[ Description
    The idea of this script (Scr) is taken from www.toster.ru. We give  to the Scr
    file of names.txt (more then 1kk lines, file of cities.txt (up to 100) and
    numbert in some range. 
    Create files from cities.txt and copy random <lines> from <source> to them.
    
    """
    
    
    import os
    import sys
    from random import randint
    
    
    LOC_PATH = "out_log"
    if not os.path.exists(LOC_PATH):
        os.makedirs(LOC_PATH)
    
    
    def mk_f(dir_name, stuff):
        # Create <dir_name> in <LOC_PATH> with <names.txt> fild with <stuff>
        path_to_bask = os.getcwd()
        new_path = os.path.join(LOC_PATH, dir_name)
        os.makedirs(new_path)
        os.chdir(new_path)
    
        with open('names.txt', 'w') as f:
            for c in stuff:
                f.write("%s\n" % c)
            f.close()
        os.chdir(path_to_bask)
    
    
    def read_f(file_in):
        # Read file and retun list of lines without empty items
        with open(file_in, 'r') as f:
            file_out = f.read().split('\n')
        return file_out[:-1]
    
    
    def rnd_chunk(into_list, min_piece, max_piece):
        # Return random lines from <into_list> withing given range
        out_list = []
        item_quantity = randint(min_piece, max_piece)
        into_list_len = len(into_list)
        while True:
            if len(out_list) != item_quantity:
                put_in = into_list[randint(0,into_list_len-1)]
                if put_in not in out_list:
                    out_list.append(put_in)
            else:
                return out_list
    
    
    def usage():
        #  Show the usage of the script
        file_name = sys.argv[0]
        print ("""\nIncorrect quantity of arguments given or unexisting files
    Usage: %s <source file> <cities file> <lines MIN-MAX>\n""" % file_name)
    
    
    def main():
        """
        Check arguments, for quantity given, for existence of files, for given
        length of <lines>
        """
        if len(sys.argv) != 4:
            usage()
            quit()
        elif os.path.isfile(sys.argv[1]) != True \
           or os.path.isfile(sys.argv[2]) != True:
            usage()
            quit()
    
        # Take all varialbe from argv
        GET_PIEACE = sys.argv[3].split("-")
        PIECE_MIN = int(GET_PIEACE[0])
        PIECE_MAX = int(GET_PIEACE[1])
        CITIES = read_f(sys.argv[2])
        SOURCE = read_f(sys.argv[1])
    
        for city_name in CITIES:
            mk_f(city_name, rnd_chunk(SOURCE, PIECE_MIN, PIECE_MAX))
    
    if __name__ == '__main__':
        main()
    Ответ написан
    Комментировать