导航:首页 > 编程语言 > python文字处理

python文字处理

发布时间:2022-07-31 15:36:00

python 文本文件处理

  1. 分隔日志文件存为小文件

  2. #coding:utf-8

  3. #file: FileSplit.py

  4. import os,os.path,time

  5. def FileSplit(sourceFile, targetFolder):

  6. sFile = open(sourceFile, 'r')

  7. number = 100000 #每个小文件中保存100000条数据

  8. dataLine = sFile.readline()

  9. tempData = [] #缓存列表

  10. fileNum = 1

  11. if not os.path.isdir(targetFolder): #如果目标目录不存在,则创建

  12. os.mkdir(targetFolder)

  13. while dataLine: #有数据

  14. for row in range(number):

  15. tempData.append(dataLine) #将一行数据添加到列表中

  16. dataLine = sFile.readline()

  17. if not dataLine :

  18. break

  19. tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")

  20. tFile = open(tFilename, 'a+') #创建小文件

  21. tFile.writelines(tempData) #将列表保存到文件中

  22. tFile.close()

  23. tempData = [] #清空缓存列表

  24. print(tFilename + " 创建于: " + str(time.ctime()))

  25. fileNum += 1 #文件编号

  26. sFile.close()

  27. if __name__ == "__main__" :

  28. FileSplit("access.log","access")


分类汇总小文件:

#coding:utf-8

#file: Map.py


import os,os.path,re


def Map(sourceFile, targetFolder):

sFile = open(sourceFile, 'r')

dataLine = sFile.readline()

tempData = {} #缓存列表

if not os.path.isdir(targetFolder): #如果目标目录不存在,则创建

os.mkdir(targetFolder)

while dataLine: #有数据

p_re = re.compile(r'(GET|POST)s(.*?)sHTTP/1.[01]',re.IGNORECASE) #用正则表达式解析数据

match = p_re.findall(dataLine)

if match:

visitUrl = match[0][1]

if visitUrl in tempData:

tempData[visitUrl] += 1

else:

tempData[visitUrl] = 1

dataLine = sFile.readline() #读入下一行数据

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")

tFile = open(tFilename, 'a+') #创建小文件

tFile.writelines(tList) #将列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Map("access\access.log1.txt","access")

Map("access\access.log2.txt","access")

Map("access\access.log3.txt","access")

3. 再次将多个文件分类汇总为一个文件。

#coding:utf-8

#file: Rece.py


import os,os.path,re


def Rece(sourceFolder, targetFile):

tempData = {} #缓存列表

p_re = re.compile(r'(.*?)(d{1,}$)',re.IGNORECASE) #用正则表达式解析数据

for root,dirs,files in os.walk(sourceFolder):

for fil in files:

if fil.endswith('_map.txt'): #是rece文件

sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')

dataLine = sFile.readline()

while dataLine: #有数据

subdata = p_re.findall(dataLine) #用空格分割数据

#print(subdata[0][0]," ",subdata[0][1])

if subdata[0][0] in tempData:

tempData[subdata[0][0]] += int(subdata[0][1])

else:

tempData[subdata[0][0]] = int(subdata[0][1])

dataLine = sFile.readline() #读入下一行数据

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")

tFile = open(tFilename, 'a+') #创建小文件

tFile.writelines(tList) #将列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Rece("access","access")

㈡ python具体在文本处理上怎么用

在诸多软件压缩包中或是项目压缩包中都会存在一个readme.txt文件,其中的内容无非是对软件的简单介绍和注意事项。但是在该文本文件中,内容没有分段分行,是非常冗杂地混在一起。当然处理手段多种多样,而我正好尝试利用Python解决这个问题。另外,这些内容或许对将来爬虫爬下的内容进行处理也是有些帮助的,只不过面对的混乱和处理需求不同而已。
这里的思路很简单,打开一个文本文档,对其中具有两个及两个以上的空格进行处理,即产生换行,另外出现很多的‘=’和‘>>>’也进行处理。这里我尝试处理的是easyGUI文件夹中的read.txt,该文件我复制在了D盘的根目录下。具体的实现代码如下:
def save_file(lister):#将传入的列表保存在新建文件中 new_file = open('new_file','w')#创建并打开文件,文件可写 new_file.writelines(lister)#将列表lister中的内容逐行打印 new_file.close()#关闭文件,且缓存区中的内容保存至该文件中def split_file(filename):#分割原始文件 f = open(filename)#打开该原始文件,默认该文件不可修改 lister = []#初始化一个空列表 for each_line in f: if each_line[:6] != '======' and each_line[:3] != '>>>': #当连续出现六个‘=’或连续三个‘>’时,打印一个换行符,实际体现在else中 each_line.split(' ',1)#当出现两个空格时,分割一次,并在下一行代码中以一行的形式保存在列表中 lister.append(each_line) else:
lister.append('\n')

save_file(lister)
f.close()

split_file('D:\\README.txt')
代码给出了详细的注释。其中得到的新的名为“new_file”的文件保存在默认的Python项目的目录下。当然,可以通过chdir()更改工作目录,使得文件创建在自己指定的位置。

㈢ python 处理文本,格式化文本~

#coding=utf-8
records=[]
record={}
withopen("data.txt")asf:
whileTrue:
line=f.readline()
ifnotline:
iflen(record)!=0:records.append(record)
break
field=line[line.find(":")+1:].strip()
ifline.startswith("ScopeId"):
iflen(record)!=0:records.append(record)
record={}
record["ScopeId"]=field
elifline.startswith("Name"):
record["Name"]=field
elifline.startswith("Free"):
record["Free"]=field
elifline.startswith("InUse"):
record["InUse"]=field
elifline.startswith("PercentageInUse"):
record["PercentageInUse"]=field
#设置缺省项
forrinrecords:
r.setdefault("InUse",0)
r.setdefault("PercentageInUse",0)
r.setdefault("Name","")
r.setdefault("Free",0)

printrecords

㈣ python 文本处理(请看粗体字)为什么是f1【

f1=opent.readline() 是读取一行,f1是读到的当前行的数据,也就是一个字符串。

㈤ python对文本文件的读有哪些方法,写有哪些方法

1 文件读取全文本操作
在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines,
read():读取文件的全部内容,加上参数可以指定读取的字符。
readline():读取文件的一行。
readlines():读取文件的所有行到内存中。
不同场景下我们可以选择不同函数对文件进行读取。
1.1 方法一
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt=file.read()
# 全文本的处理
file.close()
使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样操作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。
1.2 方法二
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt= file.read(4)
# 文本的处理while txt != ""txt= file.read(4)
# 批量文本处理
file.close()
这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。
1.3 方法三
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")for line infile.readlines():
# 处理每一行数据
file.close()
这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。
1.4 方法四
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r") # 这里的file时文件句柄for line infile:
# 处理每一行数据
file.close()
这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。
2 文件写入文本操作
文件写入有两种写入函数和一种辅助支持。
write():向文件中写入一个字符或者字节流
writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。
seek(): 辅助写入函数offset偏移量参数代表含义如下
0 - 文件开头
1 - 当前位置
2 - 文件结尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 读取写入的数据,这时候发现是没有任何内容的
file.close()
我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写操作指针的位置,可以实现写操作之后的正常读取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 调整写的指针到文件的开始位置for line infile:
# 读取写入的数据,这时候会读出一行写入的数据。
file.close()

㈥ python文字处理有哪些方法和库可以用

结巴是分词,用来把文字结构化成向量而已
要做什么分析还得看任务,你已经有向量以后 是做分类?还是聚类?还是相似度? 推荐一个Python库 sklearn 这里包含很多算法

㈦ 学python的10个有效方法有哪些

学习python主要是自学或者报班学习的方式,但不建议自学。

如果想通过学习python改行,那就需要明确一下自己的方向。因为python编程有很多方向,有网络爬虫、数据分析、Web开发、测试开发、运维开发、机器学习、人工智能、量化交易等等,各个方向都有特定的技能要求。

想学的话,当然是可以学习的。python是一门语法优美的编程语言,不仅可以作为小工具使用提升我们日常工作效率,也可以单独作为一项高新就业技能!

python可以做的事情:

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

㈧ Python文本处理工具都有哪些

1、 NLTK — Natural Language Toolkit


搞自然语言处理的同学应该没有人不知道NLTK吧,这儿也就不多说了。不过引荐两本书籍给刚刚触摸NLTK或许需求具体了解NLTK的同学: 一个是官方的《Natural Language Processing with Python》,以介绍NLTK里的功用用法为主,一起附带一些Python常识,一起国内陈涛同学友情翻译了一个中文版,这儿可以看到:引荐《用Python进行自然语言处理》中文翻译-NLTK配套书;另外一本是《Python Text Processing with NLTK 2.0 Cookbook》,这本书要深入一些,会涉及到NLTK的代码结构,一起会介绍怎么定制自己的语料和模型等,相当不错。


2、 Pattern


Pattern由比利时安特卫普大学CLiPS实验室出品,客观的说,Pattern不仅仅是一套文本处理东西,它更是一套web数据挖掘东西,囊括了数据抓取模块(包含Google, Twitter, 维基网络的API,以及爬虫和HTML剖析器),文本处理模块(词性标示,情感剖析等),机器学习模块(VSM, 聚类,SVM)以及可视化模块等,可以说,Pattern的这一整套逻辑也是这篇文章的组织逻辑,不过这儿我们暂时把Pattern放到文本处理部分。我个人首要使用的是它的英文处理模块Pattern.en, 有许多很不错的文本处理功用,包含基础的tokenize, 词性标示,语句切分,语法检查,拼写纠错,情感剖析,句法剖析等,相当不错。


3、 TextBlob: Simplified Text Processing


TextBlob是一个很有意思的Python文本处理东西包,它其实是根据上面两个Python东西包NLKT和Pattern做了封装(TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both),一起供给了许多文本处理功用的接口,包含词性标示,名词短语提取,情感剖析,文本分类,拼写检查等,甚至包含翻译和语言检测,不过这个是根据Google的API的,有调用次数约束。


4、 MBSP for Python


MBSP与Pattern同源,同出自比利时安特卫普大学CLiPS实验室,供给了Word Tokenization, 语句切分,词性标示,Chunking, Lemmatization,句法剖析等根本的文本处理功用,感兴趣的同学可以重视。


关于 Python文本处理工具都有哪些,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。

阅读全文

与python文字处理相关的资料

热点内容
如何上网上设个人加密账户 浏览:42
linux打开ssh服务 浏览:76
微信位置可以加密吗 浏览:466
算法蛮力法 浏览:436
随机排练命令 浏览:147
python多进程并发 浏览:41
安卓软件安装如何躲避安全检测 浏览:647
奇幻潮翡翠台源码百度云盘 浏览:187
什么软件可以免费pdf转word 浏览:15
php正则表达式大全 浏览:394
androidntp时间 浏览:299
轮机长命令簿英文 浏览:148
oppo铃声设置被加密怎么处理 浏览:548
粤苗app图形验证码怎么填 浏览:899
管家婆架设云服务器 浏览:254
php的登录界面代码 浏览:997
php开发客户端 浏览:998
theisle测试服怎么搜服务器 浏览:447
广播PDF 浏览:218
单片机编程300例汇编百度 浏览:35