>
is geen commando-argument, het maakt deel uit van de shell-syntaxis. Aangezien u shell=True
. niet gebruikt bij het aanroepen van subprocess.run()
, het zal niet werken.
In plaats van shell-omleiding te gebruiken, kunt u de stdout
. gebruiken argument naar subprocess.run()
om naar een bestand om te leiden.
args = ["mysqldump", f"-u{DBUser}", f"-h{DBHost}", f"-p{DBPass}", "--no-tablespaces", f'{DatabaseName}', f'{ArchiveTable}']
with open(BucketReadyName, 'w') as outfile:
subprocess.run(args, stdout=outfile)