从 python 中清除内存缓存

Clear memory cache from python

我正在使用 python,因为我尝试 运行 在 for loop.So 的冷状态下来自 psql 的一些查询,在执行每个查询之前,我的缓存必须清除! 我导入了 os 然后我这样做了:

if state=="cold":
         os.system('sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"')

我得到这个输出:

sh: 1: cannot create /proc/sys/vm/drop_caches: Permission denied

sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper

我不知道如何解决这个问题。

根据这个堆栈问题:

how to pass sudo password from python script

你可以试试这个:

password = 'my sudo password'
command = 'sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"'

# formatting the sudo password and the command
shell_script = f"echo {password} | sudo -S {command}"

# running the script
os.system(shell_script)