for line in inputfile_list.readlines(): file_name = line.strip('\n')# 使用strip()函数去掉每行结束的\n if file_name: m1 = re.match("^(\S+)-(\d{2})_(CP\d)-(\S+)$", file_name) # SCWX505A1_C056868.00_C056868.00-02_CP3-RP0_2023JAN15042101_dlogTDO.csv if m1: print (int((m1.group(2))))# 获取匹配的字符,括号里面是分组序号,没有序号则获取整体 wafernum = int((m1.group(2))) m2 = re.match("^(\S+)\.(\S+)$", file_name) # SCWX505A1_C056868.00_C056868.00-04_CP3-RP0_RP1_Merge.xlsx if m2: print (m2.group(1)) file_name_m = m2.group(1)
时间: 2023-06-26 21:04:30 浏览: 71
这段代码是读取一个文件列表,逐行处理每个文件名。首先使用正则表达式匹配文件名中的特定部分,如果匹配成功,则打印出第二个匹配到的分组内容,或者将第二个分组内容转换为整数赋值给变量wafernum。如果第一个正则表达式没有匹配成功,则使用第二个正则表达式匹配文件名,打印出第一个匹配到的分组内容并赋值给变量file_name_m。
相关问题
for line in afile.readlines():
`for line in afile.readlines():`也是一种遍历文件内容的方法,其中`afile`表示一个文件对象。
这个语句会将文件对象`afile`读取的所有内容按行分割,转化为一个字符串列表,然后使用for循环逐行遍历这个列表。每次迭代从列表中读取一行内容,将该行内容赋值给`line`变量,并执行循环体中的代码。当读取完列表中的所有元素时,for循环自动结束。
具体来说,`for line in afile.readlines():`的执行过程如下:
1. 读取文件对象`afile`的所有内容,并将内容按行分割,转化为一个字符串列表;
2. 使用for循环遍历字符串列表,每次迭代从列表中读取一行内容,将该行内容赋值给变量`line`;
3. 执行循环体中的代码,处理变量`line`中的内容;
4. 重复执行2、3步,直到读取完字符串列表中的所有元素。
在文件读取完成后,我们可以使用`afile.close()`方法关闭文件对象。
需要注意的是,使用`readlines()`方法读取文件内容时,如果文件过大,会将所有内容读取到内存中,可能会造成内存溢出。因此,在读取大文件时,建议使用`for line in afile:`这种逐行读取的方式。
for line in afile.readlines():和for line in afile 计算两者的运行时间的例子
下面是一个简单的示例,演示如何使用Python的time模块计算`for line in afile.readlines()`和`for line in afile`的运行时间:
```python
import time
# 使用for line in afile.readlines()方法计算运行时间
start_time = time.time()
with open('large_file.txt') as f:
lines = f.readlines()
for line in lines:
pass
end_time = time.time()
print("readlines() 方法运行时间:", end_time - start_time, "秒")
# 使用for line in afile方法计算运行时间
start_time = time.time()
with open('large_file.txt') as f:
for line in f:
pass
end_time = time.time()
print("for line in afile 方法运行时间:", end_time - start_time, "秒")
```
在这个例子中,我们首先使用`time.time()`函数获取当前时间,然后分别使用`for line in afile.readlines()`和`for line in afile`方法打开一个大型文件并对其进行遍历,最后再次使用`time.time()`函数获取当前时间并计算方法的运行时间。
请注意,这个示例假设`large_file.txt`是一个非常大的文件,以便更好地演示两种方法之间的差异。如果文件太小,则难以观察到明显的时间差异。