问题描述
自行选择一首七言绝句,保存在10_3.txt中,首行为绝句名;
程序读取文件后,实现控制台输出和文件输出,并分成 横版和竖版两种排列方式。
横版文件输出在10_3a.txt,竖版文件输出在10_3b.txt。
10_3.txt
思路分析
txt文件编码应为ANSI,否则会出现乱码
用切片实现横板和竖版输出。
代码
# 读取文件
with open('D:\\10_3.txt') as f:
poem = f.readlines()
title = poem[0].strip() # 获取绝句名,同时去掉两端的空格
# 控制台横向输出
print(title)
print(''.join(poem[1:])) # 将剩下的行合成一行输出
#文件横向输出
with open('D:/10_3a.txt', 'w') as f:
f.write(title + '\n')
f.write(''.join(poem[1:]))
print()
# 控制台竖向输出
max_len = max(len(line.strip()) for line in poem[1:]) # 计算最长行长度
print(title)
for i in range(max_len):
for line in poem[:0:-1]:
print(line[i], end=' ')
print() # 每行输出完毕后换行
#文件竖向输出
with open('D:/10_3b.txt', 'w') as f:
f.write(title)
f.write('\n')
max_len = max(len(line.strip()) for line in poem[1:]) # 计算最长行长度
for i in range(max_len):
for line in poem[:0:-1]:
char=line[i]
f.write(char)
f.write('\n')#每行输出完毕后换行
结果