Я думаю, я должен попытаться объяснить, что я делаю, я пытаюсь перевести текстовый файл в отдельный файл из формата слева направо в формат «вверх-вниз». Вот пример:Как переписать текстовые файлы в формат вниз? (Python 3)
Здравствуйте,
это текстовый файл
H т
е ч
л я
л s
о
, я
с
т
е
х
т
е
я
л
е
Я знаю, что приведенный выше пример не является совершенным, но форматирование это в HTML намного сложнее, чем в текстовом файле. В любом случае, это то, что я пытаюсь сделать, однако, когда моя программа получает для цикла в функции WriteToFile, этот цикл:
для a_line в r_file:
По какой-то причине он просто останавливается и Безразлично Что-нибудь после этого? Я не совсем уверен, почему это происходит, поскольку функция maxLineLeng имеет один и тот же цикл, и он работает нормально. Если вам нужно, чтобы я объяснил еще кое-что, что могу, и если вы можете помочь, это будет фантастично!
BTW Я пытаюсь сделать это таким образом, чтобы избежать использования памяти, поскольку простое копирование по каждой строке в список не будет работать, если у вас была очень длинная строка в текстовом файле или текстовый файл был просто гигантский.
# Silly downward lists for lines of text in a file
# Description: Takes lines in a file and prints them from top to bottom
# instead of from left to right.
# What this does is it goes through a text file and goes through each character in each line.
# It then writes those characters to a separate file from left to right format to up and down format
# It does this by going through each first character of each line in read file and
# writing it to the write file. Then it goes to the second character of each line in read file
# and writes that character to a newline in the write file.
# Keeps going until it reaches the end of the longest line in the sequence
# Finds the line with max length and returns that length.
def maxLineLeng(r_file):
Max = 0
for a_line in r_file:
if len(a_line) > Max:
Max = len(a_line)
return Max
# Writes to the file in up to down format
def writeToFile(r_file, w_file, i):
if i != 0:
w_file.write("\n")
for a_line in r_file:
if len(a_line) > i:
w_file.write(a_line(i))
w_file.write(" ")
else:
for a_line in r_file:
if len(a_line) > i:
w_file.write(a_line(i))
w_file.write(" ")
# open necessary files in proper format
def main():
with open("exampleR.txt",'r') as r_file: # 'with' automatically closes the file
with open("exampleW.txt",'w') as w_file:
Max = maxLineLeng(r_file)
for i in range(Max):
writeToFile(r_file, w_file, i)
# begin the program
main()
input("\n\nPress enter to quit")
О, мужчина! Это правильно, спасибо! Я думал, что это просто, но почему-то это не видно! Огромное спасибо! Супер топили! – zicameau
ваш прием, можете ли вы просто поставить ответ, который я дал вам как право закрыть сообщение?;) – lu1her