Найти - Пользователи
Полная версия: нарушен порядок строк при выводе в файл
Начало » Python для новичков » нарушен порядок строк при выводе в файл
1 2 3 4
Sherkhan
Всем привет!
Столкнулся с такой ситуацией:
Есть список с правильным порядком строк.
При выводе строк в файл с помощью функции write() или writelines(), порядок строк нарушается.
Как организовать вывод строк в строгом порядке?
doza_and
Sherkhan
Всем привет!Столкнулся с такой ситуацией:Есть список с правильным порядком строк.При выводе строк в файл с помощью функции write() или writelines(), порядок строк нарушается.Как организовать вывод строк в строгом порядке?
приведите пример файла описание почему вы думаете что порядок нарушен и ваш код
doza_and
Sherkhan
При выводе строк в файл с помощью функции write() или writelines(), порядок строк нарушается.
приведите пример файла описание почему вы думаете что порядок нарушен и ваш код
Sherkhan
Хм, возможно я понял причину. В конце каждой строки стоит символ конца строки \n. Ща попробую без него.
Sherkhan
НЕ. Проблема осталась. Кусок кода:
    
    wflag = False
    fkey = 1
    ways = []
    fString=''
    lw = open(template+'\\trains_way.mis','rt')
    dwr = open(template+'\\mds.mis','wt')
    line = lw.readline()
    while line:
        ways.append((fkey,line))
        fkey = fkey + 1
        line = lw.readline()
    ways.sort()
    for i, j in ways:  #Перебираем строки файла way 
        #print line
        # Если строка содержит путь поезда из выбранных в all_trains, копируем её и все точки пути
        for k,l,m in all_trains:
            #print k
            if j.rstrip() == k:
                # Вставляем путь в файл
                way = '[' + m + '_Road]'
                dwr.writelines(way)
                wflag = True
            elif j[0] != '[' and wflag == True:
                fString=fString+j
                #las.write(j)
            else:
                dwr.writelines(fString)
                wflag = False
                fString=''
Sherkhan
А как ещё понять, если команда print выводит правильный порядок строк, а когда просматриваешь выходной файл, там вперемешку.
JOHN_16
Sherkhan
ЗЫ: пробелы и табы вначале строк удаляются тут
Тут и не только тут. На форумах код всегда нужно оформлять в теги CODE. смотрите редактор сообщений. Переоформите, ваш код испорчен
FishHook
Приложите файл trains_way.mis
PooH
Sherkhan
НЕ. Проблема осталась. Кусок кода:
А это вы на каком языке написали?
Покажите пример файла trains_way.mis и пример содержимого all_trains.

ЗЫ: сначала пытался прокомментировать построчно все косяки в вашем коде, но проще будет показать как надо
Sherkhan
Рассматриваемая подзадача программы (для игрового приложения) состоит в следующем:
Есть файл с шаблонами нескольких маршрутов поездов в игре. Считывается в словарь. Затем точки маршрута проверяются на соответствие определённым критериям и, в случае удовлетворения этим критериям, составы с маршрутами вставляются в файл сценария. Маршруты не меняются, меняется номер состава и тип. Маршрут должен быть вставлен в сценарий в строгой последовательности.
Пример списка all_trains:
[('1_Chief', ‘Trains.USSR_TovarSostav 1’, ‘26000_Chief’),
('2_Chief', ‘'Trains.USSR_FuelCargo 1’, ‘26001_Chief’)]
Приведённый выше кусок кода должен делать следующее:
1.Читать шаблон с маршрутами, которые выглядят так:
(идентификатор поезда)
1_Chief_Road
точка маршрута
точка маршрута
….
2_Chief_Road
точка маршрута
точка маршрута
….
2. В случае совпадения идентификатора с первым элементом тройки all_trains, в выходной файл вставляется изменённый идентификатор (третий элемент из тройки all_trains) и весь маршрут.

ЗЫ: fkey (в куске кода) - это попытка сохранить порядок строк маршрута путём нумерации, но так тоже не получилось((
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