我在txt文件中有一个数据表。我用[]将它带入Python
a1_file=open(file_path,'r')
然后我转到第二行以跳过标题
a1_file.readline() line_string=a1_file.readline()
作为逗号分隔的函数,我想获得一个列表,其中存储了前5个逗号的位置。为此,我正在尝试使用此功能
def commas_in_line(table_row): commas=[] while len(commas) <5: if len(commas)==0: i=0 else: i=commas[-1]+1 k=table_row.find(',',i) commas=commas.append(k) return commas
我通过以下方式调用函数
commas_in_line(line_string)
代码报告此错误
Traceback (most recent call last): File "<pyshell#52>", line 1, in <module> commas_in_line(line_string) File "C:/1WritingPrograms.py", line 11, in commas_in_line while len(commas) <5: TypeError: object of type 'NoneType' has no len()
with
>>> line_string '30/04/2020,30,4,2020,122,0,Afghanistan,AF,AFG,37172386,Asia\n'
我尝试替换为函数
commas=commas.append(k)
与
commas=commas+[k]
并且它有效,但是如何使用append方法?为什么会失败?
我在txt文件中有一个数据表。我使用a1_file = open(file_path,'r')将其带入Python,然后转到第二行以跳过标题a1_file.readline()line_string = a1_file.readline()...
您使用以下方法将值添加到python列表中:
基本上.append()
不会返回新数组。 .append()
有点像Inplace函数,其中值被附加到数组中。因此,您不必返回任何东西。当您说commas=commas.append(k)
时,将返回一个新的实体,即NoneType。请直接将其保留为commas.append(k)