needlist += [file for file in filelist if 'fnl' in file and ( str_yesday + '18.f03' in file or str_yesday + '18.f00' in file or str_yesday + '12.f03' in file)]
时间: 2024-04-17 07:24:28 浏览: 104
这段代码使用列表推导式来筛选出符合特定条件的文件,并将它们添加到 `needlist` 列表中。
假设你有一个文件列表 `filelist`,你想要筛选出满足以下条件的文件并添加到 `needlist` 中:
- 文件名中包含字符串 `'fnl'`;
- 文件名中包含字符串 `'str_yesday + '18.f03'`、`str_yesday + '18.f00'` 或者 `str_yesday + '12.f03'`。
可以使用以下代码实现:
```python
needlist += [file for file in filelist if 'fnl' in file and (
str_yesday + '18.f03' in file or str_yesday + '18.f00' in file or str_yesday + '12.f03' in file)]
```
在这个代码中,使用列表推导式来遍历 `filelist` 中的每个文件名 `file`,然后根据条件判断是否将该文件名添加到 `needlist` 中。
请注意,这个代码片段只是一个示例,你需要将其嵌入到你的实际代码中,并根据你的需求进行适当的修改。
相关问题
if __name__ == "__main__": file_path = opt.data_path file_list = opt.test_list f = open(file_list, 'r') filelist = f.readlines() for index in range(len(filelist)): current_file = filelist[index] if opt.kitti2015: leftname = file_path + 'image_2/' + current_file[0: len(current_file) - 1] rightname = file_path + 'image_3/' + current_file[0: len(current_file) - 1] if opt.kitti: leftname = file_path + 'colored_0/' + current_file[0: len(current_file) - 1] rightname = file_path + 'colored_1/' + current_file[0: len(current_file) - 1] savename = opt.save_path + current_file[0: len(current_file) - 1] test(leftname, rightname, savename)
这段代码是程序的入口,首先读取文件路径和测试文件列表,然后逐行读取测试文件列表中的文件,并根据文件路径和文件名拼接出左右两张图片的完整路径。如果是 kitti2015 数据集,左右两张图片的路径分别在 image_2 和 image_3 文件夹下;如果是 kitti 数据集,则左右两张图片的路径分别在 colored_0 和 colored_1 文件夹下。然后调用 test 函数对左右两张图片进行处理,得到深度图并保存在指定路径下。这个函数的输入参数包括读取的文件路径,测试文件列表,保存深度图的路径和其他一些参数,返回值是 None。
def create(): analyser = ChineseAnalyzer() | IntraWordFilter() | StemFilter() schema = Schema( title=TEXT(stored=True), content=TEXT(stored=True, analyzer=analyser), classier=TEXT(stored=True) ) ix = create_in('D:/代码写代码/分类后/', schema=schema, indexname='index_text') writer = ix.writer() filelist = os.listdir('D:/代码写代码/分类后/') i = 0 for file in filelist: if i <= len(filelist): content = open('D:/代码写代码/分类后/索引/' + file, encoding='utf-8').readlines() # content是一个列表,必须转成字符串,才能正常使用 # writer.add_document(title=file, content=content) writer.add_document(title=file, content=''.join( content), classier=test_classier[i]) print(file, '索引完成') print(i) i += 1 writer.commit()本段代码运行后出现lock error
这个错误通常出现在多个进程或线程同时尝试访问同一索引文件时。可以尝试使用 `with` 语句打开索引文件,以确保每次只有一个进程或线程可以访问该文件。具体代码修改如下:
```python
from whoosh.index import create_in
from whoosh.fields import *
from whoosh.analysis import ChineseAnalyzer, IntraWordFilter, StemFilter
import os
def create():
analyser = ChineseAnalyzer() | IntraWordFilter() | StemFilter()
schema = Schema(
title=TEXT(stored=True),
content=TEXT(stored=True, analyzer=analyser),
classier=TEXT(stored=True)
)
# 使用with语句打开索引文件
with create_in('D:/代码写代码/分类后/', schema=schema, indexname='index_text').writer() as writer:
filelist = os.listdir('D:/代码写代码/分类后/')
i = 0
for file in filelist:
if i <= len(filelist):
content = open('D:/代码写代码/分类后/索引/' + file, encoding='utf-8').readlines()
writer.add_document(title=file, content=''.join(content), classier=test_classier[i])
print(file, '索引完成')
print(i)
i += 1
```
使用 `with` 语句可以确保在完成操作后自动关闭索引文件,避免了多进程或线程同时访问的问题。
阅读全文