Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数组对可以读取的行数有限制吗?_Python_Arrays_List - Fatal编程技术网

Python 数组对可以读取的行数有限制吗?

Python 数组对可以读取的行数有限制吗?,python,arrays,list,Python,Arrays,List,然后我得到以下回溯: parserlines = [line.strip().split(",") for line in open("C:\\Python34\\filename_convention.txt", 'r')] print(parserlines[1]) #[1]source_dir[2]source_pattern[3]target_dir[4]prefix parserarrayI101 = parserlines[1] parserarrayO101 = parserl

然后我得到以下回溯:

parserlines = [line.strip().split(",") for line in open("C:\\Python34\\filename_convention.txt", 'r')]
print(parserlines[1])

#[1]source_dir[2]source_pattern[3]target_dir[4]prefix

parserarrayI101 = parserlines[1]
parserarrayO101 = parserlines[2]
parserarrayI103 = parserlines[3]
parserarrayO103 = parserlines[4]
parserarrayI195 = parserlines[5]
parserarrayO195 = parserlines[6]
parserarrayI199 = parserlines[7]
parserarrayO199 = parserlines[8]
parserarrayI900 = parserlines[9]
parserarrayO900 = parserlines[10]
parserarrayI910 = parserlines[11]
parserarrayO910 = parserlines[12]
parserarrayI195 = parserlines[13]
parserarrayO195 = parserlines[14]
parserarrayI199 = parserlines[15]
parserarrayO199 = parserlines[16]

print(parserarrayI900[2])
回溯(最近一次呼叫最后一次):
文件“C:\Python34\listest.py”,第16行,在
parserarrayI910=parserlines[11]
索引器:列表索引超出范围

文件中有16行需要读取。还有更好的方法吗?

不,Python的大小没有限制,这是您正在使用的(系统内存除外)。我相信它们是作为灵活的阵列实现的;这意味着它们是引擎盖下的阵列,但它们会动态调整大小,以适应添加到其中的项目数量


问题在于您的文件以及如何读取。正如评论中所建议的那样,可能是行尾被曲解了。读取文件后,请立即打印
parserlines
变量,它将显示文件的实际读取方式。考虑使用该模块以便于查看:<代码> pPr.pPress(PARSRILN) ./P> > P>如果数据文件是由观察MSDOS文件约定的程序生成的,那么行分隔符是“\r\n”而不是“\n”。 该约定可通过稍微修改打开的:

Traceback (most recent call last):  
   File "C:\Python34\listtest.py", line 16, in <module>  
      parserarrayI910 = parserlines[11]  
IndexError: list index out of range

添加
t
意味着使用MSDOS文本模式约定。

您知道Python中的列表以零开始吗?或者您故意用
parserlines[1]
跳过第一个元素?是否确定
line.strip().split(',')
会给出所需的结果?是的,第一行是标题。我需要数组中的单个元素。你能发布一小部分输入文件(2-5行)吗?没有16行。检查行endingsI dunno,我赞成显式声明文件模式,特别是因为不同的开放协议可以有不同的默认模式(如tempfile等)。然而,在这里使用“with open”是。。。。这是必须的。
open("C:/Python34/filename_convention.txt", "rt")