在python中逐行读取并记住文件
我有一些数据列表,我必须逐行读取,然后用regexp解析,从我这里提取有用的数据: 现在代码看起来像:在python中逐行读取并记住文件,python,regex,Python,Regex,我有一些数据列表,我必须逐行读取,然后用regexp解析,从我这里提取有用的数据: 现在代码看起来像: counter = 0 # first line of the file with open(data) as f: for line in f: counter += 1 f.readlines()[counter] ... name = re.search(r'(?<=-)\d.*?(?=\s)', line)
counter = 0 # first line of the file
with open(data) as f:
for line in f:
counter += 1
f.readlines()[counter]
...
name = re.search(r'(?<=-)\d.*?(?=\s)', line)
...
counter=0#文件的第一行
打开(数据)作为f:
对于f中的行:
计数器+=1
f、 readlines()[计数器]
...
name=re.search(r’(?当您对f中的行执行操作时,您正在逐行遍历文件,因此在您的案例中不需要除此之外的任何内容。例如:
with open(data) as f:
for line in f:
line = line.rstrip() # <- use this if you want to get rid of new line character
name = re.search(r'(?<=-)\d.*?(?=\s)', line)
# your code
打开(数据)为f的:
对于f中的行:
line=line.rstrip()#f.readlines()
一次读取整个文件,f
行中的不留任何数据。删除它。它不是一次解析整个文件吗?代码逻辑的原因是提取的数据将用于更改目录和git提交消息,因此提交数据取决于文件条目,应该不同(例如,如果我有60个文件条目,我将不得不进行60次不同的提交:)它将被逐行解析,就像在整个代码执行后它将跳转到下一行一样。在f.read().splitlines()中对行使用:
将消除使用line=line.rstrip()的需要
@ZachGates这将导致文件中出现额外的循环,如果文件太大,这可能是一个问题