python逐行读取文件赋值变量_逐行读取文本文件并在Python中存储匹配特定模式的变量...

我们有一个包含以下两行的大型日志文件:00 LOG | Cycles Run: 120001

00 LOG ! Virtual: Max> ?????????? bytes (?.???? gb), Current> 640733184 bytes (?.???? gb).

00 LOG ! Virtual: Max> 1082470400 bytes (?.???? gb), Current> ????????? bytes (?.???? gb).

00 LOG ! Actual: Max> ????????? bytes (?.???? gb), Current> 472154112 bytes (?.???? gb).

00 LOG ! Actual: Max> 861736960 bytes (?.???? gb), Current> ????????? bytes (?.???? gb).

由于日志文件的大小很大,我们希望逐行读取(而不是一次读取缓冲区中的整个文本),匹配特定的模式集并在单独的变量中选取值。在

例如

^{pr2}$

我们想要o pick120001并存储在一个变量中,比如cycle。在

另一方面,我们分析这些行:00 LOG ! Virtual: Max> ?????????? bytes (?.???? gb), Current> 640733184 bytes (?.???? gb).

00 LOG ! Virtual: Max> 1082470400 bytes (?.???? gb), Current> ????????? bytes (?.???? gb).

00 LOG ! Actual: Max> ????????? bytes (?.???? gb), Current> 472154112 bytes (?.???? gb).

00 LOG ! Actual: Max> 861736960 bytes (?.???? gb), Current> ????????? bytes (?.???? gb).

用?标记的字符可以是任何数字。在

我们希望存储以下值:640733184 in var virtual_cur

1082470400 in var virtual_max

472154112 in var actual_cur

861736960 in var actual_max

在Python 3.6中编写了一个片段,但它正在打印空列表:import re

filename = "test.txt"

with open(filename) as fp:

line = fp.readline()

while line:

cycle_num = re.findall(r'00 LOG | Cycles Run: (.*?)',line,re.DOTALL)

line = fp.readline()

print (cycle_num[0])NOTE: I want to pick each values in seperate variables and use it

later on. Need to set 5 patterns one by one, pick value if it matches

any specific pattern and put it inrespective variable.

不确定第二个模式的通配符匹配。在

请给我们一个有效的方法。在

### 回答1: 可以使用Pythonopen()函数来打开一个TXT文件,并使用readlines()方法逐行读取TXT文件的内容并存储到数组。以下是一个示例代码: ```python with open('file.txt', 'r') as f: lines = f.readlines() for line in lines: # 对每一行进行处理,例如输出或者赋值 print(line.strip()) # 去除每行末尾的换行符并打印 ``` 其,`file.txt`是你要读取TXT文件名,`lines`是存储读取内容的数组。在with语句块打开文件后,可以使用`readlines()`方法逐行读取文件内容并将其存储到`lines`数组。最后,可以对每一行进行处理,例如输出或者赋值。上述示例代码,使用`strip()`方法去除每行末尾的换行符并打印。 ### 回答2: 可以使用Python的文件操作函数逐行读取TXT文件的数组并进行赋值。 首先,使用`open()`函数打开TXT文件,设置文件操作模式为只读模式,并将文件对象赋值给一个变量,例如`file`。假设文件名为`data.txt`。 ```python file = open("data.txt", "r") ``` 接下来,可以使用`readlines()`函数逐行读取文件内容,并将每一行的数据存储在一个数组,例如`data`。 ```python data = file.readlines() ``` 此时,`data`数组的每个元素对应TXT文件的一行数据。 如果想要进一步处理每一行的数据,可以使用`for`循环遍历`data`数组,并对每个元素进行处理或赋值。 ```python for line in data: # 进行处理或赋值操作 ``` 例如,如果每行的数据是以空格分隔的整数,可以使用`split()`函数将每行数据分割成一个整数数组,并将结果存储在一个新的数组,例如`nums`。 ```python nums = [] for line in data: nums.append([int(x) for x in line.split()]) ``` 这样,`nums`数组的每个元素对应TXT文件的一行数据,并且是由整数组成的数组。 最后,记得在处理完TXT文件后,使用`close()`函数关闭文件。 ```python file.close() ``` 以上就是使用Python逐行读取TXT文件数组并赋值的方法。 ### 回答3: 可以使用Pythonopen()和readlines()方法来逐行读取TXT文件,并将每一行的内容赋值给一个数组。 首先,使用open()方法打开指定的TXT文件,并将返回的文件对象赋值给一个变量,例如file。 然后,使用readlines()方法读取file对象的内容,并将每一行的内容保存到一个新的数组,例如lines。 接下来,可以使用for循环遍历lines数组,逐行打印或处理文件内容。 以下是一个简单的示例代码: ```python file = open('example.txt', 'r') # 打开指定的TXT文件,并赋值变量file lines = file.readlines() # 读取文件内容,并将每一行的内容保存到lines数组 for line in lines: # 在这里对每一行的内容进行处理,例如打印或赋值给其他变量 print(line) file.close() # 关闭文件 ``` 在上述示例,我们通过open()方法打开了名为example.txtTXT文件,并将文件对象赋值变量file。然后,我们使用readlines()方法读取file对象的内容,并将每一行的内容保存到lines数组。接下来,我们使用for循环遍历lines数组,将每一行打印出来。最后,我们使用close()方法关闭文件。 请注意,以上示例仅给出了逐行读取TXT文件并赋值给数组的基本框架,具体的处理方式根据实际需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值