【发布时间】:2016-02-07 21:37:34
【问题描述】:
从其他帖子中,我可以读取 ls -l 的输出并仅过滤目录中的文件字节。但是,我还想将所有这些值放入一个列表(数组)中,然后得到元素的总和。
我尝试创建一个列表 b,然后只打印 sum(b)。但是,当我想创建一个列表时,我得到了 MemoryError。
现在的情况:
import subprocess
import csv
process = subprocess.Popen(['ls', '-l',], stdout=subprocess.PIPE)
stdout, stderr = process.communicate()
reader = csv.DictReader(stdout.decode('ascii').splitlines(), delimiter = ' ', skipinitialspace=True, fieldnames= ['Owner','Date','Dir','Priv','Bytes','Field2', 'Field3', 'Field4', 'Field5'])
问题从这里开始
for row in reader:
a = row['Bytes']
b = [int(a)]
for i in b:
b.append(i)
continue
print(b)
输出:
Traceback (most recent call last):
File "script2.py", line 13, in <module>
b.append(i)
MemoryError
任何帮助如何将所有元素放入一个列表然后得到总和将不胜感激。谢谢!
【问题讨论】:
-
b.append(i)尝试将i添加到b,您正在尝试为数组中的每个i添加i。而continue跳到下一个循环,它永远不会打印b。
标签: python unix dictionary ls