You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解析报错Unexpected EOF while parsing,单文件双正则提取内容求助

解决SyntaxError: unexpected EOF while parsing错误及字符串提取优化

嘿,我来帮你排查这个问题!首先,SyntaxError: unexpected EOF while parsing这个错误一般是代码存在语法不完整的情况,比如未闭合的引号、括号,或者变量没正确定义。结合你给出的代码片段,我整理了几个修复点:

1. 先解决语法错误根源

最可能的问题是fname变量没正确定义,或者定义时缺少引号。比如你如果直接写open(fname, 'r')但没提前给fname赋值为文件名字符串,Python就会报语法错误。一定要确保fname是一个带引号的字符串,比如fname = "your_target_file.txt"。

另外检查代码有没有未闭合的结构,比如括号、引号有没有漏写——不过从你贴的代码看,这个可能性稍小,但也值得确认。

2. 修复文件读取的逻辑问题

你现在调用了两次file.read(),这会导致第二个正则匹配不到任何内容:第一次read()会把文件指针移到文件末尾,第二次read()只能读到空字符串。应该把文件内容先存到一个变量里,重复使用:

import re

# 先定义你的文件名
fname = "your_file.txt"

# 用with语句安全打开文件(自动帮你关闭文件,避免资源泄漏)
with open(fname, 'r') as file:
    content = file.read()  # 只读取一次文件内容
    codes = re.findall('LIR: (.+)', content)
    functions = re.findall(';(.+);LIR', content)

3. 正则匹配的小优化(可选)

如果你的目标字符串不会包含换行符,建议用非贪婪匹配(加?),避免匹配到超出预期的内容,比如:

codes = re.findall('LIR: (.+?)', content)
functions = re.findall(';(.+?);LIR', content)

这样调整后,应该既能解决语法错误,又能正确提取你需要的两个字符串啦!

内容的提问来源于stack exchange,提问作者Nikko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:54:50