ich möchte ein externes Konsolenprogram aufrufen und den Output in eine Datei umleiten.
Danach die neue Datei mit einer älteren Version vergleichen.
Das geht soweit ich nur eine Datei verabreite.
Wenn ich allerdings das Konsolenprogram in einer Schleige sofort wieder aufrufe und
den Output in eine andere Datei umleite, wird nicht nur der aktuelle Output, sondern
auch der vorherige Output in die neue Datei geschrieben.
Wie kann ich also den stdout löschen um das Program erneut aufzurufen?
Code: Alles auswählen
def run(input_file, args = []):
newFile = input_file + '.new'
orgFile = input_file + '.org'
args.append(input_file)
p = subprocess.Popen(args, stdout=open(newFile, 'w'))
p.wait()
compare_result = filecmp.cmp(newFile, orgFile)
if compare_result:
os.remove(orgFile)
return compare_result
if __name__ == "__main__":
...
for subdir, dirs, files in os.walk(test_data_path):
for file in files:
if file[len(file) - 4:len(file)] == '.dat':
print '{0} compare result is {1}'.format(file, run(test_data_path + file, _arg))
Claudia