当我把file.read()赋值给变量时,为什么regex匹配到file.read()的字符串输出是不同的?

2024-09-30 10:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将regex匹配到一个yml文件中,发现了一个我不了解read()在Python中如何工作的情况

我正在打开一个<;4k yaml文件: with open(filename, 'r') as fptr:

我有三件事可以比较wrt行为:

  1. ftpr.read()
  2. 新建文件=fptr.read()
  3. 将stdout从fptr.read()复制到变量“filedummy”中

如果将type()应用于这三个变量,则得到'str' 如果我把每个打印到标准输出上,它们是一样的

现在如果我应用正则表达式:

print [match for match in re.findall(YAML_PATTERN, filedummy, flags=re.MULTILINE)], "<=== matches"
print [match for match in re.findall(YAML_PATTERN, new_file, flags=re.MULTILINE)], "<=== matches"
print [match for match in re.findall(YAML_PATTERN, fptr.read(), flags=re.MULTILINE)], "<=== NOTHING"

注意:如果我孤立地执行这些操作,这种行为仍然会发生,所以这似乎不是因为我耗尽了ftpr.read()输出


Tags: 文件inreyamlforreadmatchflags

热门问题