>
không phải là một đối số lệnh, nó là một phần của cú pháp shell. Vì bạn không sử dụng shell=True
khi gọi subprocess.run()
, nó sẽ không hoạt động.
Thay vì sử dụng chuyển hướng trình bao, bạn có thể sử dụng stdout
đối số cho subprocess.run()
để chuyển hướng đến một tệp.
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)