Найти - Пользователи
Полная версия: Цикл for отрабатывает только один раз. Нужна помощь
Начало » Python для новичков » Цикл for отрабатывает только один раз. Нужна помощь
1 2 3
J.R.
.
py.user.next
Gang
Но смущает постоянно порявляющаяся ошибка.
Делай, как у J.R.

Либо так
fKeys = open('keys.txt')
fCity = open('city.txt')
fResult = open('result.txt','w')
 
with fKeys, fCity, fResult:
    for lineKeys in fKeys:
        lineKeys = lineKeys.rstrip('\n')
        fCity.seek(0)
        for lineCity in fCity:
            lineCity = lineCity.rstrip('\n')
            result = lineKeys + ' ' + lineCity
            fResult.write(result + '\n')
Gang
Вы в начале открываете файлы через
with open
А у меня просто
open
Может из-за этого?
Gang
py.user.next
Да все работает и з этой ошибкой. Но вопрос, почему она возникает?
Последняя строчка скрипта
    fResult.read()
io.UnsupportedOperation: not readable
py.user.next
Gang
Но вопрос, почему она возникает?
Потому что ты неправильно сделал. Ты пытаешься читать файл, открытый на запись.
Gang
Ну вродь как разобрался. Теперь все без ошибок

fKeys = open('keys.txt','r')
fCity = open('city.txt','r')
fResult = open('result.txt','w')
for lineKeys in fKeys:
    lineKeys = lineKeys.rstrip('\n')
    fCity.seek(0)
    for lineCity in fCity:
        lineCity = lineCity.rstrip('\n')
        result = lineKeys+' '+lineCity
        fResult.write(result + '\n')
with fKeys, fCity, fResult:
    fKeys.close()
    fCity.close()
    fResult.close()
py.user.next
Gang
Ну вродь как разобрался. Теперь все без ошибок
Вот это скопируй себе.

Gang
with fKeys, fCity, fResult:
    fKeys.close()
    fCity.close()
    fResult.close()
with уже выполняется close'ы неявно, он для того и нужен, чтобы их выполнять.
Gang
py.user.next
Ага понял

Gang
Еще маленькая проблемка возникла. Хочу первую букву в результирующей строке привести в верхний регистр. Использую
result.capitalize()

Общий код сейчас такой
fKeys = open('keys.txt','r')
fCity = open('city.txt','r')
fResult = open('result.txt','w')
with fKeys, fCity, fResult:
    for lineKeys in fKeys:
        lineKeys = lineKeys.rstrip('\n')
        fCity.seek(0)
        for lineCity in fCity:
            lineCity = lineCity.rstrip('\n')
            result = lineKeys+' '+lineCity
            result.capitalize()
            fResult.write(result + '\n')
Но чето не работает
 result.capitalize()
Где я опять протупил?
py.user.next
result = (lineKeys + ' ' + lineCity).capitalize()

Gang
Где я опять протупил?
Ты её как бы в воздухе привёл, а потом откинул. (Как с rstrip() нужно делать.)
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