最近在学python文件操作的时候,也是遇见了一些小问题
文件的打开方式
读取: read()的方式
每次读取整个文件,它通常用于将文件内容放到一个字符串变量 中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每 次最多读取size个字节的内容。
readline()的方式每次只读取一行
readlines()的方式自动将文件内容分析成一个行的列表
写入:Write(str)
将字符串str写入文件。此方法没有返回值。 由于缓冲,在调 用flush()或close()方法之前,字符串可能不会写入到打开的相关联文件中。
可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件
Writelines():可以以列表的形式一次性写入多行,而且调用writelines写入多行在 性能上会比使用write一次性写入要高。
问题描述:假设文件data.txt中有若干整数,所有整数之间使用英文逗号分隔,编写程序读取所有整数,将其按升序排序后再写入文本文件data_asc.txt中,并打印输出新的文件。
代码如下:
with open('data','r+',encoding='utf-8')as fp:
data = fp.readline()
data = [line.strip() for line in fp]
data = ','.join(data)
data = data.split(',')
data = [int(item) for item in data]
data.sort()
data = ','.join(map(str,data))
with open('data_asc','w+',encoding='utf-8')as fp:
fp.write(data)
fp.seek(0,0)
print(fp.read())
fp.close()