• Как из текстового файла БЫСТРО создать заданное количество файлов с заданным количеством строк Python?

    @kascode
    На мой взгляд лучшим решением будет прочитать большой файл names.txt в list и, соответственно, держать его в памяти.

    Ну а дальше дело техники. Читаем построчно файл с городами. Для каждого города создаём папку с соответствующим именем. В папке файл name.txt. В него осуществяем построчную запись случайной строки из исходного файла с проверкой на дублирование.

    Структуру файла cities.txt я принял такую: [город]|[количество строк для города]
    москва|1000
    санкт-петербург|1100

    __author__ = 'kascode'
    from random import randint
    import os
    
    source = open('names.txt', 'r')
    
    sourcelines = source.readlines()
    sourcelineslen = len(sourcelines)
    
    def readCities():
        with open('cities.txt', 'r') as f:
            citylines = f.readlines()
    
        citieslist = []
        
        # заполняем список данными в формате [['город'], ['число строк']] 
        for line in citylines:
            citieslist.append(line.split('|'))
    
        return citieslist
    
    for city in readCities():
        # создаём папку с именем города
        if not os.path.exists(city[0]):
            os.makedirs(city[0])
    
        file = city[0] + '/name.txt'
        cityout = open(file, 'w')
        written = []        # массив записанных строк
    
        # записываем столько строк, сколько указано для города
        for i in range(1, int(city[1])):
            # берём случайную строку из исходного списка
            sourceline = sourcelines[randint(0, sourcelineslen-1)]
            
            # берём новую пока не найдём не дублирующую
            while sourceline in written:
                sourceline = sourcelines[randint(0, sourcelineslen-1)]
    
            cityout.write(sourceline)
            written.append(sourceline)


    На моей машине обработка файла в 10000000 строк длиной 10-50 символов заняла 0,21с.
    Ответ написан
    Комментировать
  • Как менять цвет у лейблов в неактивных полях ввода?

    @kascode
    Без модификации данного плагина можно это сделать только при помощи JS. Что-то вроде этого
    $('input').focus(function() {
      $(this).siblings('.placeHolder').addClass('focus');
    });
    $('input').focusout(function() {
      $(this).siblings('.placeHolder').removeClass('focus');
    });

    в css изначально присвоить .placeHolder "неактивный" стиль. Ему же с классом focus соотетственно "активный".
    .jvFloat .placeHolder.focus {
      color: #212121;
    }
    .jvFloat .placeHolder.focus.required {
      color: red;
    }
    .jvFloat .placeHolder {
      /*...*/
      color: #a5a5a5;
      /*...*/
    }
    Ответ написан
    3 комментария
  • Алфавитный фильтр ul списка средствами js или php?

    @kascode
    Думаю в данном случае будет правильно использовать метод filter. В таком случае можно фильтровать именно по первой букве.

    $(document).ready(function() {
        var options = {
            valueNames: ['firstName', 'lastName']
        };
    
        var userList = new List('users', options);
    
        $('.filter').click(function(e) {
            e.preventDefault();
    
            // Получаем букву из текста ссылки-фильтра
            var letter = $(this).html();
    
            userList.filter(function(item) {
                // Получаем первую букву имени
                var l = item.values().firstName.charAt(0);
    
                if (l === letter) {
                    return true;
                } else {
                    return false;
                }
            });
        });
    });


    Сделал codepen с примером.
    Ответ написан
    Комментировать