gpt4 book ai didi

python - 使用python从文本文件中查找并打印引号中的文本

转载 作者:行者123 更新时间:2023-11-28 17:48:20 25 4
gpt4 key购买 nike

我是一名 python 初学者,希望 python 从文本文件中捕获引号中的所有文本。我尝试了以下方法:

filename = raw_input("Enter the full path of the file to be used: ")
input = open(filename, 'r')
import re
quotes = re.findall(ur'"[\^u201d]*["\u201d]', input)
print quotes

我得到错误:

Traceback (most recent call last):
File "/Users/nithin/Documents/Python/Capture Quotes", line 5, in <module>
quotes = re.findall(ur'"[\^u201d]*["\u201d]', input)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer

谁能帮帮我?

最佳答案

正如 Bakuriu 所指出的,您需要像这样添加 .read():

quotes = re.findall(ur'[^\u201d]*[\u201d]', input.read())

open() 仅返回一个文件对象,而 f.read() 将返回一个字符串。此外,我猜您希望获得两个引号之间的所有内容,而不是在引号之前仅出现零次或多次 [\^u201d] 。所以我会试试这个:

quotes = re.findall(ur'[\u201d][^\u201d]*[\u201d]', input.read(), re.U)

re.U 表示 unicode。或者(如果你没有两组右双引号并且不需要unicode):

quotes = re.findall(r'"[^"]*"', input.read(), re.U)

最后,您可能希望选择与 input 不同的变量,因为 input 是 python 中的关键字。

您的结果可能如下所示:

>>> input2 = """
cfrhubecf "ehukl wehunkl echnk
wehukb ewni; wejio;"
"werulih"
"""
>>> quotes = re.findall(r'"[^"]*"', input2, re.U)
>>> print quotes
['"ehukl wehunkl echnk\nwehukb ewni; wejio;"', '"werulih"']

关于python - 使用python从文本文件中查找并打印引号中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612182/

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