当前位置:首页 » 编程语言 » python解析文本

python解析文本

发布时间: 2022-04-27 02:00:39

① 使用python对txt文本进行分析和提取

实现的方法和详细的操作步骤如下:

1、首先,打开计算机上的pycharm编辑器,如下图所示,然后进入下一步。

编程纯小白想问一下,要用python进行文本分析(NPL),学习路线应该是怎样的(目标:熟练的分析文献)

先学文本分析的思路方法,
比如文本表示最简单的方式是词袋法,把文本变成向量,每个词是向量的一个维度,所以中文需要分词,Python分词找jieba分词
文本表示向量以后,就可以开始对应你需要的任务,比如做分类聚类关联之类的事。比如垃圾邮件分类就是建模对文本内容判断真或假
不用读文献,有问题网络找博客就行了

③ 用“python”怎么提取文件里的指定内容

python读取文件内容的方法:

一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:

all_the_text = open('thefile.txt').read( )
# 文本文件中的所有文本
all_the_data = open('abinfile','rb').read( )
# 二进制文件中的所有数据

为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用的文件对象占用内存。举个例子,对文本文件读取:

file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )

不一定要在这里用Try/finally语句,但是用了效果更好,因为它可以保证文件对象被关闭,即使在读取中发生了严重错误。

二.最简单、最快,也最具Python风格的方法是逐行读取文本文件内容,并将读取的数据放置到一个字符串行表中:list_of_all_the_lines = file_object.readlines( )

这样读出的每行文本末尾都带有" "符号;如果你不想这样,还有另一个替代的办法,比如:
list_of_all_the_lines = file_object.read( ).splitlines( )
list_of_all_the_lines = file_object.read( ).split(' ')
list_of_all_the_lines = [L.rstrip(' ') for L in file_object]

④ 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 读取文本文件,怎么才能读取一段内容

python读取段落需要自定义函数:
from _ _future_ _ import generators

def paragraphs(fileobj, separator='\n'):
if separator[-1:] != '\n': separator += '\n' paragraph = []
for line in fileobj:
if line == separator:
if paragraph: yield ''.join(paragraph)
paragraph = []
else: paragraph.append(line)
if paragraph: yield ''.join(paragraph)

⑥ python对文件的读操作方法有哪些

摘要 1 文件读取全文本操作

⑦ 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读取文本文件,对读出的每一行进行操作,写法如下:

f=open("test.txt","r")

whileTrue:

line=f.readline()

ifline:

pass#dosomethinghere

line=line.strip()

p=line.rfind('.')

filename=line[0:p]

print"create%s"%line

else:

break

f.close()

⑨ 如何使用 Python 正则表达式解析文本文件

试试这个方法:import re
def get_email_list(text):
pattern = re.compile(r'\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b')
email_list = re.findall(pattern, text)
return email_list
print get_email_list(your_text)

热点内容
编译不成功怎么办 发布:2025-05-16 10:35:54 浏览:610
如何修改密码找回 发布:2025-05-16 10:35:53 浏览:568
怎么才能编译本书 发布:2025-05-16 10:27:47 浏览:757
ssd服务器电脑 发布:2025-05-16 10:26:25 浏览:827
水果忍者源码 发布:2025-05-16 10:26:22 浏览:472
python中ord函数 发布:2025-05-16 10:14:25 浏览:340
电脑启动后无法连接服务器 发布:2025-05-16 10:06:39 浏览:984
jar包编译过程 发布:2025-05-16 10:03:37 浏览:679
选举源码 发布:2025-05-16 09:58:59 浏览:749
超级访问陈小春应采儿 发布:2025-05-16 09:43:29 浏览:479