gpt4 book ai didi

python - 尝试从包含奇怪字符的文件中读取某些文本。 (Python)

转载 作者:行者123 更新时间:2023-11-30 23:07:49 25 4
gpt4 key购买 nike

您好,我正在尝试从文本文档中的关键字获取数据作为项目,我可以使用此代码来完成此操作。我对 python 很陌生,不知道从哪里开始解决这个问题。

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

Keyword = raw_input("Please enter the keyword: ")

go = False

start = Keyword
end = "[+][+]"

with open("test.txt") as infile:
for line in infile:
line = line.strip()
if start in line: go = True
elif end in line:
go = False
continue
if go:
print(line)

此代码非常适合像

这样的示例文本文档
Something Something Something Something   
Something Something Something Something
Something Keyword:
Data
Data
Data
Data
End
Something

但是,当我尝试读取包含奇怪字符的文件时遇到问题。例如:

2015/08/14 15:48:30 OUT:
2015/08/14 15:48:30 OUT:
PQ=
(3< ’’aÈ©ÿY˜ü â [+][+]52

2015/08/14 15:48:31:IN[+]53[+][+]101[+]-1[+] **Keyword** ,SHOWALL
**data**
**data**
**data**
**data**
**data**
**data**
**data**
end

因为目标是读取此文本文档并打印出关键字和结束之间的单词。如果其中包含这些字符,它将不会执行。对于该项目,我无法删除这些字符,它只需要能够阅读文档并找到关键字并打印出中间的内容。

关于如何从包含这些奇怪字符的文本文档中读取内容并正确处理它而不是仅仅崩溃的任何想法。

最佳答案

首先您需要以二进制模式打开文件。然后,您可以使用正则表达式来提取输入的关键字和“end”之间的所有文本。然后可以使用另一个正则表达式提取整个单词:

import re

with open("input.txt", "rb") as f_input:
start_token = raw_input("Please enter the start keyword: ")
end_token = raw_input("Please enter the end keyword: ")
reText = re.search("%s(.*?)%s" % (re.escape(start_token), re.escape(end_token)), f_input.read(), re.S)

if reText:
for word in re.findall(r"\b\w+\b", reText.group(1)):
print word
else:
print "not found"

对于您的示例文本,将显示:

SHOWALL
data
data
data
data
data
data
data

或者,如果您只想要两点之间的所有文本,请print reText.group(1) 而不是 for 循环。

更新:添加了对变量结束标记的支持。

关于python - 尝试从包含奇怪字符的文件中读取某些文本。 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com