如何打开 txt 文件列表,将它们转换为字符串,然后查看它们是否与给定字典中的任何键匹配
How do I open a list of txt files, convert them to strings, and then see if they match any keys from a given dictionary
我有一个文本文件列表 (list_4),格式为 cv1.txt、cv2.txt、cv3.txt 等,最大为 cv20.txt。我想使用 for 循环分别打开和读取这些文件并将它们转换为字符串。这是我的代码:
list_5 = []
for i in list_4:
file = open(i)
line = file.read().replace('\n', '')
list_5.append(line)
file.close()
print(list_5)
这部分代码用于打开、读取我的 list_4 个 txt 文件并将其转换为字符串。
现在我有一个名为 my_dict 的字典,格式为 {'abandoned':-1, "abandonment':1, 'abandon':0 ......}
我想用for循环来比较之前从list_5生成的字符串元素和my_dict的键值对,为list_4的每个字符串元素输出一系列整数=].
例如:
for key in my_dict:
for i in list_4:
file = open(i, 'r')
line = file.read()
file.close()
if key in line:
list_6.append(my_dict[key])
print(list_6)
但是问题是这个 for 循环的输出是一系列混乱的键和文件:
['-1cv1.txt', '-1cv8.txt', '-1cv17.txt', '1cv4.txt', '1cv6.txt', '1cv1.txt', ...]
获得使用:
for key in my_dict:
for i in list_4:
file = open(i, 'r')
line = file.read()
file.close()
if key in line:
list_6.append(str(my_dict[key]) + i)
print(list_6)
我有什么方法可以获取 list_5 中每个字符串元素的特定键,即
list_5: ['the cow goes moo', 'the cat goes meow',...]
list_6: [[0,1,-1],[0,0,0],...]
可能需要在列表中使用列表?不确定,如有任何帮助,我们将不胜感激!
如果我对问题的理解正确,您希望最终输出看起来像这样:
[ ( 'the cow goes moo', [0, 1, -1] ), ( 'the cat goes meow', [0, 0, 0]),... ]
如果是这样,也许试试:
for line in list_5: # using list_5 instead of list_4
sub_list = []
for key in my_dict:
if key in line:
sub_list.append(my_dict[key])
list_6.append(sub_list)
combined = list( zip( list_5, list_6 ))
print( combined )
(如果所有 line
项确实由空格分隔,则可以通过拆分每个 line
并迭代它而不是字典键来加速脚本,但现在忽略它。 ..)
希望这会有所帮助。
我有一个文本文件列表 (list_4),格式为 cv1.txt、cv2.txt、cv3.txt 等,最大为 cv20.txt。我想使用 for 循环分别打开和读取这些文件并将它们转换为字符串。这是我的代码:
list_5 = []
for i in list_4:
file = open(i)
line = file.read().replace('\n', '')
list_5.append(line)
file.close()
print(list_5)
这部分代码用于打开、读取我的 list_4 个 txt 文件并将其转换为字符串。
现在我有一个名为 my_dict 的字典,格式为 {'abandoned':-1, "abandonment':1, 'abandon':0 ......}
我想用for循环来比较之前从list_5生成的字符串元素和my_dict的键值对,为list_4的每个字符串元素输出一系列整数=].
例如:
for key in my_dict:
for i in list_4:
file = open(i, 'r')
line = file.read()
file.close()
if key in line:
list_6.append(my_dict[key])
print(list_6)
但是问题是这个 for 循环的输出是一系列混乱的键和文件:
['-1cv1.txt', '-1cv8.txt', '-1cv17.txt', '1cv4.txt', '1cv6.txt', '1cv1.txt', ...]
获得使用:
for key in my_dict:
for i in list_4:
file = open(i, 'r')
line = file.read()
file.close()
if key in line:
list_6.append(str(my_dict[key]) + i)
print(list_6)
我有什么方法可以获取 list_5 中每个字符串元素的特定键,即
list_5: ['the cow goes moo', 'the cat goes meow',...] list_6: [[0,1,-1],[0,0,0],...]
可能需要在列表中使用列表?不确定,如有任何帮助,我们将不胜感激!
如果我对问题的理解正确,您希望最终输出看起来像这样:
[ ( 'the cow goes moo', [0, 1, -1] ), ( 'the cat goes meow', [0, 0, 0]),... ]
如果是这样,也许试试:
for line in list_5: # using list_5 instead of list_4
sub_list = []
for key in my_dict:
if key in line:
sub_list.append(my_dict[key])
list_6.append(sub_list)
combined = list( zip( list_5, list_6 ))
print( combined )
(如果所有 line
项确实由空格分隔,则可以通过拆分每个 line
并迭代它而不是字典键来加速脚本,但现在忽略它。 ..)
希望这会有所帮助。