我有一个包含以下视图的文件:
ID Num1 Num2
1 1 2
1 2 4
1 3 6
2 4 8
2 5 10
3 6 12
3 7 14
3 8 16
3 9 18
4 10 20
5 11 22
5 12 24
我想根据每个文件不应包含3个以上ID值的条件将文件拆分为多个文件。所以,在这种情况下,他们将两个输出文件。第一个文件应该有输出:
1 1 2
1 2 4
1 3 6
2 4 8
2 5 10
3 6 12
3 7 14
3 8 16
3 9 18
虽然第二个文件应如下所示:
4 10 20
5 11 22
5 12 24
但它会生成三个文件,第二个文件为空文件,第三个文件包含ID = 5的值。
以下代码是用python编写的:
infile=open("Input.txt","r")
outfile=open("Output1.txt","w")
list_value=[] # Storing the values of 1st column
file=2 # Naming the file
value="" # 1st column value
for line in infile:
value=line.split()[0]
if value in list_value:
outfile.write(line)
else:
list_value.append(value)
if (len(list_value)) < 4:
outfile.write(line)
elif (len(list_value))==4:
outfile=open("Output"+str(file)+".txt","w")
outfile.write(line)
file=file+1
list_value=[]
代码仅适用于第一个序列,但最终无法正常工作。
任何linux命令都可以提供帮助。
谢谢!
答案 0 :(得分:1)
代码中的最后一行应为
ZonedDateTime z = now.atZone(ZoneId.of("America/Sao_Paulo"));
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss xxx");
System.out.println(fmt.format(z)); // 20/06/2017 10:28:39 -03:00
而不是
list_value = [value]
因为您在list_value = []
子句中打开的文件已包含ID elif
。