我有以下代码:
check = open(a, 'r')
line =check.readlines()
for items in line:
breakup= items.split()
length = (len(breakup)-1)
number[0], salary[1], position[2], oname[3:length], first[-1] = breakup
data.append(tuple([first, oname, number, position, salary]))
这段代码从包含通用信息的文本文件中读取,例如:
15674 24000 Manager Gregory the 1st John
我正在尝试使用for循环将信息按我要求的顺序附加到数据中,这样上面的信息将显示为:
('John', 'Gregory the 1st', 15674, 'Manager', 24000)
我之所以把oname从第3位切到倒数第二位,是因为oname可以是任意数量的名字,但是名字总是一个项目,所以我100%确定我可以从位置[-1]调用它
我的问题是它不起作用。代码将读取正确的文件,并正确地打破它,但我不能得到它重新安排正确。你知道吗
您需要以不同的方式分割线,然后分配部分而不分配索引和切片:
这将保留
oname
字段中的空格。第一个调用只拆分3次,给出前三个字段和一个余数。然后将rest
中的剩余部分从右侧拆分一次,得到oname
和first
。你知道吗演示:
这个怎么样?它将每一行分割成标记,然后将每个标记放在适当的位置。你做的事情是逆向的-你应该索引标记列表,而不是你想分配给他们的变量。这假设“manager”将不包含空格—否则,manager和name将不明确。你知道吗
这将使oname成为一个单词列表,而不是一个包含空格的字符串。如果希望它是一个字符串,只需将
toks[3:-1]
替换为" ".join(toks[3:-1])
。你知道吗相关问题 更多 >
编程相关推荐