1

我知道这是一个简单的修复,但似乎无法找到答案:

我正在尝试创建一个批处理文件,该文件获取每天从 ftp 服务器下载的文件夹中的所有文件,将它们组合到一个单独的文件夹中,然后根据文件的列从组合文件中制作新文件(这是部分给我带来麻烦)。

例如:

我们每天都有这样的数据格式:

DATE/TIME  | NodeID | Data    
04/05/2013 11:23:11   |     2     |   10    
04/05/2013 11:23:11    |    3  |      10    
04/05/2013 11:23:11    |    4   |     10    
04/05/2013 11:23:11    |    5   |     10    
04/05/2013 11:23:11     |   6    |    10    
04/05/2013 11:23:11      |  7   |     10    
04/06/2013 11:24:12     |   1    |    12    
04/06/2013 11:24:12     |   1    |    12        
04/06/2013 11:24:12    |    4   |     12        
04/06/2013 11:24:12     |   1     |   12        
04/06/2013 11:24:12     |   3   |     12        
04/06/2013 11:24:12     |   2    |    12

我想要的是把所有节点 ID 为 1 的行放在一个单独的文件中,把节点 ID 为 2 的所有行放在一个单独的文件中,等等......

我对 python 的了解非常有限,但我愿意做任何事情。

4

3 回答 3

1
@ECHO OFF
SETLOCAL enabledelayedexpansion
DEL noderesult*.txt 2>nul
FOR /f "skip=1tokens=1,2*delims=|" %%i IN (logfile.txt) DO (
 SET node=%%j
 SET node=!node: =!
 >>noderesult!node!.txt ECHO(%%i^|%%j^|%%k
)

应该做的工作,生产noderesult?.txt- 小心 - 该DEL行删除所有现有的noderesult*.txt

于 2013-05-31T15:13:38.143 回答
0

我没有测试它,但这可以工作:

with open('your/file') as file:
    line = file.readline()
    while line:
        rows = line.split('|')
        with open(rows[1].strip() + '.txt', 'a') as out:
            out.write(line)
        line = file.readline()
于 2013-05-31T15:24:40.860 回答
0

尝试以下操作:

f_in = "path_to_your_file"
f = open(f_in,'r')

f_out = {}

for l in f:
  if l != '\n':
    row = l.split('|')
    id = int(row[1])
    if id not in f_out:
      f_out[id] = open(f_in + "_" + str(id),'w')
    f_out[id].write(l)
于 2013-05-31T15:18:06.263 回答