我知道这是一个简单的修复,但似乎找不到答案:
我正在尝试创建一个批处理文件,该文件将每天从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
我想要的是使用NodeID 1获取所有行并将它们放在一个单独的文件中,将NodeID 2的所有行放在一个单独的文件中等等......
我对python的知识非常有限,但我愿意在任何事情上做到这一点。
答案 0 :(得分: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
答案 1 :(得分: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)
答案 2 :(得分: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()