加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python中的大TXT文件解析问题

发布时间:2020-12-20 11:19:32 所属栏目:Python 来源:网络整理
导读:一直试图想出这一整天.我有一个大文本文件(546 MB),我试图在 python中解析,寻找开放标签和关闭标签之间的文本,我不断得到内存问题.在这个板上的好人的帮助下,这是我到目前为止所拥有的. answer = ''output_file = open('/Users/Desktop/Poetrylist.txt','w')
一直试图想出这一整天.我有一个大文本文件(546 MB),我试图在 python中解析,寻找开放标签和关闭标签之间的文本,我不断得到内存问题.在这个板上的好人的帮助下,这是我到目前为止所拥有的.

answer = ''
output_file = open('/Users/Desktop/Poetrylist.txt','w')

with open('/Users/Desktop/2e.txt','r') as open_file:
    for each_line in open_file:
        if each_line.find('<A>'):
            start_position = each_line.find('<A>')
            start_position = start_position + 3
            end_position = each_line[start_position:].find('</W>')

            answer = each_line[start_position:end_position] + 'n'
            output_file.write(answer)

output_file.close()

我收到此错误消息:

Traceback (most recent call last):
  File "C:UsersAdamDesktopOEDsearch3.py",line 9,in <module>
    end_position = each_line[start_position:].find('</W>')
MemoryError

我几乎没有任何编程经验,我正在努力想出这个我正在研究的诗歌项目.任何帮助是极大的赞赏.

解决方法

>你的逻辑是错误的,因为.find()如果找不到字符串则返回-1,-1是真值,所以你的代码会认为每一行都有< A>在里面.
>您不需要创建新的子字符串来查找’< / W>‘,因为.find()也有一个可选的start参数.
>这些都没有解释为什么你的内存不足.你有一台非常小的内存机吗?
>您确定要向我们展示所有代码吗?

编辑:好的,现在我认为你的文件只有一行.

尝试更改您的代码,如下所示:

with open('/Users/Desktop/Poetrylist.txt','w') as output_file:
    with open('/Users/Desktop/2e.txt','r') as open_file:
        the_whole_file = open_file.read()
        start_position = 0
        while True:
            start_position = the_whole_file.find('<A>',start_position)
            if start_position < 0:
                break
            start_position += 3
            end_position = the_whole_file.find('</W>',start_position)
            output_file.write(the_whole_file[start_position:end_position])
            output_file.write("n")    
            start_position = end_position + 4

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读