案例:
假设文件data.txt中有若干整数,所有整数之间使用使用英文逗号分割,编写程序读取所有整数,将其按照升序排序之后再写入文本文件data_asc.txt
data.txt
1
2223
45
234
98
213
124
34
21
89
题目解析:
- 写在文件里面我们需要解析,第一步就是读取文件,使用
with open读取可以不用close()关闭 - 把所有整数用逗号分割,我们读取出来的type是str类型,需要进行
int转换,同时用逗号分割,分割函数split(),看上面的data文件有一些有空格字符,我们需要使用strip()去除两边的空格 - 按照升序排列,默认就是升序排序,排序用的方法是
sort() - 写入的时候需要将整型(int)转换为字符串(str)写入,这里一般用到映射函数
map() - 最后就是使用
write()方法将其写入
代码:
with open("data.txt","r") as fp:
data=fp.readlines() #读取所有行
data=[line.strip() for line in data] #删除每行两侧的空白字符
data=",".join(data) # 合并所有行
data=data.split(",") #分割所得到的所有字符串
data=[int(item) for item in data] # 转换为数字
data.sort()
# data.sort(reverse=True) #降序排列
data=','.join(map(str,data)) #将结果转换为字符串
# type(data)
with open("data_asc.txt",'w') as fp:
fp.write(data)

版权声明:本文为qq_42907061原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。