2016-08-12 3 views
0
from itertools import chain 
from glob import glob 

file = open('FortInventory.txt','w') 

lines = [line.lower() for line in lines] 
with open('FortInventory.txt', 'w') as out: 
    out.writelines(sorted(lines)) 

Я пытаюсь преобразовать весь текст в текстовый файл в нижний регистр, как бы я это сделал, вот код, который у меня есть до сих пор, и я рассмотрел некоторые вопросы о стеке переполнение, но я не мог понять это, если бы кто-нибудь мог связать меня с правильной статьей или сказать мне, что не так с моим кодом, я бы очень признателен.Изменить весь текст в нижнем регистре

+3

Для начала, вы никогда не перебирать фактический файл. Должно быть «lines = [line.lower() для строки в файле]» – Enders

+0

ahhhh duhhhhhh, немой мне спасибо! – goldenwest

ответ

1

Две проблемы:

  1. Откройте файл с 'r' для чтения.
  2. linesfile в вашем понимании.

Вот фиксированный код:

from itertools import chain 
from glob import glob 

file = open('FortInventory.txt', 'r') 

lines = [line.lower() for line in file] 
with open('FortInventory.txt', 'w') as out: 
    out.writelines(sorted(lines)) 
+1

было бы разумнее открыть файл 'r +', а затем искать начало для перезаписывания всего и использовать внешний файл 'с открытым (...) как файл:' – oldrinb

+1

https://stackoverflow.com/questions/6648493/open-file-for-both-reading-and-writing Объясняет, что говорит @oldrinb – Enders

+1

Согласен. Возможно, это вопрос для мета, но я стараюсь изменить только то, что требуется или требуется от исходного кода, чтобы было легче различать то, что было просто изменением стиля/оптимизацией и тем, что на самом деле было исправлено. Я рад, что эти комментарии здесь, хотя указывают на дальнейшие улучшения кода :) – Karin