我真的很亲近。我通读了“每个单词之间的空格数”,它确实提供了这一行:
counts = [(len(list(cpart))) for c,cpart in groupby(s) if c == ' ']
但我真的不明白......我明白,或者我假设,C 是分隔符,S 是你分组的依据,你把结果列表?(python 的新手,数组?)放入计数(S 指的是先前实例化的变量)
我将如何确定这样的事情?
AMOUNT DATE
NAME ACCOUNT# DISCOUNT DUE DUE
我正在创建一个程序,它允许我查看随机创建的 COBOL 输出文件头并使用它来创建 PIC(X) 的关联。
示例解决方案输出为:
- 图 X(30) 价值空间。
- 图 X(6) 值“金额”。
- 图 X(8) 价值空间。
- 图 X(4) 值“日期”。
重要的部分是数字。我可以明显地确定字符串的长度,但我不知道如何......
这是我到目前为止所展示的我正在工作的内容,哈哈:
from itertools import groupby
from test.test_iterlen import len
from macpath import split
from lib2to3.fixer_util import String
file = open("C:\\Users\\Joshua\\Desktop\\Practice\\cobol.cbl", 'r+')
line1 = file.readline()
split = line1.split()
print (split)
print ()
counts = [(len(list(cpart))) for c,cpart in groupby(split) if c == ' ']
print (counts)
index = 0
while index != split.__len__():
if split[index].strip() != None:
print ("PICX(" + ") VALUE " + "\"" + split[index] + "\".")
elif counts[index] == None:
print ("PICX(" + ") VALUE " + "\"" + split[index] + "\".")
index+=1