python——文件的输入输出&&统计词频

来源:互联网 发布:阿里云国际站网址 编辑:程序博客网 时间:2024/05/18 13:28

在python中,对文件内容的操作第一步总是使用open函数打开文件,在进行接下来的操作。

open函数的基本语法如下:

open(file_name [,access_mode][,buffering])

file_name:文件的路径

access_mode打开文件的模式,该文章中只用到了w,r,a(详细了解文件打开模式的话请参考http://blog.csdn.net/ztf312/article/details/47259805的文章)

w:打开一个文只用于写入。如果该文件存在的话就覆盖,如果文件不存在,就创建一个新文件。

r  :以只读模式打开文件。文件的指针将会放在文件的开头。

a :打开一个文件用于追加。如果该文件已经存在的话,指针就会放在文件的结尾,新的文件将会追加在文件的最后。如果不存在的话文件将进行写入。

open函数返回的是一个File对象,有了File对象后就可以使用Write()方法和Read() ||Readline ()||Readline ( )方法进行代码的写入和读取了。

代码:

#-*-coding:UTF-8 -*-path=r"d:\2.txt"    #创建两个文件路径path1=r"d:\1.txt"xiao=open(path,"w") #打开文件,选择覆盖模式a="《我亦好歌亦好酒》"b="\n红衣佳人白衣友,朝与同歌暮同酒。\n世人谓我恋长安,其实只恋长安某。\n"xiao.write(a.center(21,"-"))#对文件进行写入标题,设置为剧中xiao=open(path,"a")     #因为要对文件内容进行追加,所以选择模式axiao.write(b)xiao=open(path,"r")    #这里是打开文件 print(xiao.read())xiao.close()        #关闭文件,避免虚拟机崩溃造成文件丢失#修改文件内容#使用字符串自带的replace函数对文件内容进行修改def xiugai(path):    xiao=open(path,"r+").read()    s=str(xiao)    x=s.replace("我","你")    xiao=open(path,"w")    xiao.write(x)    xiao=open(path,"r")    print(xiao.read())    xiao.close()xiugai(path)#统计频率#使用字符串自带的count方法对文件出现的词进行统计#然后写入1.txt文件#但我这里统计时会把已经统计过的词再次进行统计,造成统计过多#所以我在这里又加了个去重的过程,应该还有更好的方法,求各位大神指点指点def tongji(path):    hu=r"d:\1.txt"    xiao=open(path,"r+").read()    s=list(xiao)    for i in range(len(s)):        x=s[i]        y=s.count(s[i])        xi=open(hu,"a+")        xi.write(x+" "+"出现了:%d\n"%y)        xi.close()tongji(path)#去重#把文件按行读取,去重,再重新写入,用not in 的思路#当某一行不咋zzz中的话就写入zzz中,存在的话就不写入了def quchong(path1):    xiao=open(path1,"r+").readlines()    print(type(xiao))    zzz=""    for id in xiao:        if id not in zzz:            zzz += id    xiao=open(path1,"w+")    xiao.write(str(zzz))    xiao.close()quchong(path1)hu=r"d:\1.txt"xi=open(hu,"r")print(xi.read())