@Python学习
文件和数据格式化
CSV文件逆序输出问题
问题:附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。
我的思路:
以行为单位遍历文件,每行逆序输出即可。
实现代码:
f = open('data.csv', "r", encoding = 'utf-8')
for i in f:
print(i[::-1])
f.close()
非常之简单,但是输出结果不对。去看了下答案想了一下才明白问题在哪。
参考答案:
f = open("data.csv")
for line in f:
line = line.strip("\n")
ls = line.split(",")
ls = ls[::-1]
print(",".join(ls))
f.close()
答案解析:
我的问题在于读入的每行都是字符串,其中包含" 8"这样的部分,如果不加以处理就输出的话就成"8 " ,无法满足题目要求的“不改变周围布局”。因此应当将文件读进来,先去掉每行末尾的’\n’,再以 ‘,’ 为分隔符将字符串修改为列表,将列表逆序,可以保证各元素的顺序逆序但元素内部不受影响,再通过",".join(ls)用逗号拼接回去并输出,实现题目要求。