我正在读取一个文件,我在每行解析特定字符串。 在每一行中找到特定的字符串。现在我正在尝试将这些字符串收集到一个列表中,但它不起作用。
with open('readfile.txt',"r") as data:
myList = []
for lines in data
myValues = re.findall(.......) #that's so far OK, regex finds data of interest
collect_ToList = myList.append(myValues)
print(collect_ToList )
输出:
None
None
None
None
None
None
None
None
None
调试信息:
print(type(myValues))
输出:
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
我做错了什么?
答案 0 :(得分:2)
myList.append(item)
将item
添加到myList
,无需将输出保存在collect_ToList
等变量中。
with open('readfile.txt',"r") as data:
myList = []
for lines in data:
myValues = re.findall(.......)
myList.append(myValues)
print(myList)
您也可以在一行中完成:
with open('readfile.txt',"r") as data:
myList = [re.findall(.......) for lines in data]
print(myList)
答案 1 :(得分:1)
列表的append
函数返回None,而您似乎期待列表,请记住列表是可变的。
尝试打印myValues
或myList
。
答案 2 :(得分:1)
append
修改列表并返回None
。
append(object) -> None -- append object to end
因此改变:
collect_ToList = myList.append(myValues)
print(collect_ToList )
成:
myList.append(myValues)
print(myList)
答案 3 :(得分:0)
当您呼叫collect_ToList = myList.append(myValues)
时,您正在修改myList
,但list.append返回None,分配给collect_ToList
。
如果您要打印要附加的值,请执行print(myValues)
。
如果您要打印myList
,请使用print(myList)
。
如果您要将myList
的{{1}}内容保存到新变量,请使用myValues
。