当前位置:   article > 正文

数据采集01_假设文件data.txt中有若干整数,每行一个整数,编写程序读取所有整数,将其按降序排

假设文件data.txt中有若干整数,每行一个整数,编写程序读取所有整数,将其按降序排

第一次课

蒙特卡罗法计算圆周率

from random import random
def estimatePI(times):
	hits=0
	for i in range(times):
		x=random()
		y=random()
		if x*x+y*y<=1:
			hits+=1
    return 4.0*hits/times
print(estimatePI(10000))
print(estimatePI(1000000))
print(estimatePI(100000000))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第三次课

读写文件

内置函数open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,
newline=None,closefd=True,opener=None)
file指定被打开的文件名称
mode参数指定了打开文件后的处理方式
buffering指定了读写文件的缓存方式,0表示不缓存,1表示缓存,大于1表示缓存区的大小
encoding是对文本指定编码格式,如GBK,utf-8,CP936
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

读写语句

f1=open('file1.txt','r') 以读模式打开文件
f2=open('file2.txt','w') 以写的模式打开文件
f1.close()  一定要关闭文件
  • 1
  • 2
  • 3

方法

readline()	读取一行返回
readlines() 把每行作为一个字符串存入列表然后返回该列表
write(s)	把s的内容写入文件
writelines(s) 把字符串写入文本文件,不添加换行符
  • 1
  • 2
  • 3
  • 4

with可以自动管理资源,保证文件被正常关闭

with open(filename,mode,encoding) as fp:
这里写通过文件对象fp读写文件内容的语句
  • 1
  • 2

举例

向文本文件中写入内容,再读出
s='Hellow world\n文本读取方法\n文本的写入方法\n'
with open('sample.txt','w') as fp: 默认使用cp936编码
	fp.write(s)
with open('sample.txt') as fp:  默认使用cp936编码
	print(fp.read())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

举例

with open('sample.txt') as fp:
	for line in fp:
		print(line)
  • 1
  • 2
  • 3

json文件

import json
将对象s序列化为json格式写入fp
json.dump(fp)
#反序列化为python对象,返回字典对象
json.load(fp)
  • 1
  • 2
  • 3
  • 4
  • 5

假设文件data.txt中有若干整数,每行一个整数,编写程序读取所有的整数
将其按照降序排序后再写入文本文件data_asc.txt中

with open('data.txt','r') as fp:
	data=fp.readlines()		读取所有行,存入列表
data=[int(item) for item in data]		列表推导式,转化为数字
data.sort(reverse=True)		降序排序
data=[str(item)+'\n' for item in data]		将结果转换为字符串
# data.sort(key=int,reverse=True)	这样写更简洁
with open('data_desc.txt','w') as fp:将结果写入文件
	fp.writelines(data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

统计文本文件中最长行的长度和该行的内容

with open('sample.txt') as fp:
	result=[0,'']
	for line in fp:
		t=len(line)
		if t> result[0]:
			result=[t,line]
print(result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/640763
推荐阅读
相关标签
  

闽ICP备14008679号