目录
1.语法和用法
2.实例
1.语法和用法
with open(file,mode='r',encoding=None) as f:
#①读取所有文本
data1 = f.read()
#②读取第一行数据
data2 = f.readline()
#③读取所有文本数据
data3 = f.readlines()
说明:
with …… as ……:用于命名,也可以直接赋值的方式,比如a = b。
open():用于打开文件。
file:文件名,用英文引号引着文件所在地和文件名,比如'vote.txt'。
mode:读写模式,默认为‘r’读取文件,不存在该文件会报错。常用的还有‘w’写入文件,若文件不存在新建一个文件再写入;还有‘a’追加写入,存在文件则直接追加内容,不存在则新建文件中写入内容。
encoding:一般为‘utf-8’可以读取utf-8以及gbk格式的文本。
2.实例
(1)读取竞选文档并统计竞选名单。每行只能投一个人选,其他为无效票。
原文件vote.txt内容
#竞选名单统计
f = open("vote.txt",encoding='utf-8') #打开文件,默认为‘r’读取,用‘utf-8’编码防止读取中文乱码
names = f.readlines() #读取所有行,并命名为names
f.close() #关掉文件
D = {} #自定义一个空字典D
for name in names: #用for循环迭代每一行投票结果
if len(name.split())==1: #当每一行投票名字只有一个才有效,其他无效
D[name[:-1]]=D.get(name[:-1],0) + 1 #用字典的get方法统计
l = list(D.items()) #将获取的字典转为列表
l.sort(key=lambda s:s[1],reverse=True) #按统计票数进行降序排序
name = l[0][0] #提取第一名名字
score = l[0][1] #提取第一名票数
print("最具人气明星为:{},票数为:{}".format(name,score)) #输出第一名人气名字和票数
输出结果为:
最具人气明星为:李四,票数为:2
(2)读取情感词频数据。
text = open("./qianhou_emotion.csv","r")
print("文件名为:",text.name)
d ={}
for line in text.readlines(): #迭代每一行
line = line.strip() #去掉空字符
print("读取的数据为:%s"%line) #输出读取每行的数据
for line in text: #迭代每行各字段的数据
ls = str(line).strip('\r\n').split(',') #将每行数据迭代切割,实际cvs文件是以逗号“,”分割
print(ls)
print('{},{},{},{}\n'.format(ls[0],ls[1],ls[2],ls[3]))
参考文章:
字典dict具体的使用方法可参考:python的dict字典的语法及实例_小白修炼晋级中的博客-CSDN博客_python字典的基本案例
for循环的具体使用方法可参考:python的for循环语句的用法及实例_小白修炼晋级中的博客-CSDN博客_python中for循环语句例子
split函数具体使用方法可参考:python如何将字符串进行拆分——split函数的用法及实例_小白修炼晋级中的博客-CSDN博客
list的reverse、sort具体用法可参考:
python的列表list排序方法——sort、reverse用法及实例_小白修炼晋级中的博客-CSDN博客_python中sort和reverse
其他文章:Python读取txt文本三种方式 - 知乎 (zhihu.com)