【发布时间】:2020-12-21 12:09:44
【问题描述】:
这是我的代码:
import re
def get_email_answers(path):
for line in path:
clear = line.strip()
if re.match(r".*\s.*\t(Antw.+)\t.*Uhr", clear):
subject = re.findall(r".*\s.*\t(Antw.+)\t.*Uhr", clear)
print(subject)
def get_sizes(path):
for line in path:
clear = line.strip()
if re.match(r".*\s([0-9][0-9]\s[MKG]B)", clear):
size = re.findall(r".*([0-9][0-9]\s[MKG]B)", clear)
print(size)
elif re.match(r".*\s([0-9][0-9][0-9]\s[MKG]B)", clear):
size = re.findall(r".*([0-9][0-9][0-9]\s[MKG]B)", clear)
print(size)
elif re.match(r".*\s([0-9]\s[MKG]B)", clear):
size = re.findall(r".*([0-9]\s[MKG]B)", clear)
print(size)
elif re.match(r".*(.\.[0-9][0-9]\s[MKG]B)", clear):
size = re.findall(r".*(.\.[0-9][0-9]\s[MKG]B)", clear)
print(size)
file_opener = open(r"C:\Users\julia\Documents\RegEX-Test.txt", "r")
get_sizes(file_opener)
get_email_answers(file_opener)
函数 get_sizes 有效,但函数 get_email_answers 无效。 如果您将函数 get_sizes 注释掉,那么 get_email_answers 就可以完美运行。如果您将 get_email_answers 放在 get_sizes 之前,则 get_sizes 不起作用,而 get_email_answers 起作用。
我已经这样做了:
def get_email_answers(path):
print(path) #modified here
for line in path:
print("line") #and here
clear = line.strip()
if re.match(r".*\s.*\t(Antw.+)\t.*Uhr", clear):
subject = re.findall(r".*\s.*\t(Antw.+)\t.*Uhr", clear)
print(subject)
打印的路径与 get_sizes 中的相同。 但是,for循环没有运行! 为什么?当您将其他函数 get_sizes 注释掉时,为什么会这样?
【问题讨论】:
-
请提供reproducible example,即提供样本
RegEX-Test.txt文件
标签: python function file for-loop