subprocess.run() 关于 mkdir 的问题
subprocess.run() issues with mkdir
我在使用 subprocess.run()
时遇到问题。
我尝试在 W10 内的 WindowsSubsystemForlinux1 WSL1 应用程序中创建一个新目录。
目录名称应为(例如):a0_998.0784269595375
(逗号后始终为 13 位数字)。
该组数字作为 Python 函数的输出。
我有:
def SMILEI(I):
os.chdir("/home/velenos14/PICsims/github/SMILEI_correctTunnelBSIrate/Smilei/SIMRESULTS/GPs_trial_Xenon_noOAM")
a0 = "%.13f" % a0_from_IntensityWcm2(I) # a0_from_IntensityWcm2() is a function
subprocess.run(['dirname="a0_"', 'mkdir' '-p' '$dirname'], check=True, text=True) # PermissionError: [Errno 13] Permission denied: 'dirname="a0_'
我做错了什么?
BASH 命令(工作并完成工作)如下:
for ((i = 1; i <= 15000; i++))
do
index=$((i))
a0=$(awk "NR==${index} { print $2 }" Intensity_Wcm2_versus_a0_10_20_10_25_range.txt)
dirname="a0_${a0}"
mkdir -p $dirname
cd $dirname
done
据我所知,您希望将 dirname
参数作为环境变量传递给您的 mkdir
子进程。
而是预先构建您的 dirname
变量并将其传递给 subprocess.run
,如下所示:
def SMILEI(I):
os.chdir("/home/velenos14/PICsims/github/SMILEI_correctTunnelBSIrate/Smilei/SIMRESULTS/GPs_trial_Xenon_noOAM")
dirname = "a0_%.13f" % a0_from_IntensityWcm2(I)
subprocess.run(["mkdir", "-p", dirname], check=True, text=True)
我在使用 subprocess.run()
时遇到问题。
我尝试在 W10 内的 WindowsSubsystemForlinux1 WSL1 应用程序中创建一个新目录。
目录名称应为(例如):a0_998.0784269595375
(逗号后始终为 13 位数字)。
该组数字作为 Python 函数的输出。
我有:
def SMILEI(I):
os.chdir("/home/velenos14/PICsims/github/SMILEI_correctTunnelBSIrate/Smilei/SIMRESULTS/GPs_trial_Xenon_noOAM")
a0 = "%.13f" % a0_from_IntensityWcm2(I) # a0_from_IntensityWcm2() is a function
subprocess.run(['dirname="a0_"', 'mkdir' '-p' '$dirname'], check=True, text=True) # PermissionError: [Errno 13] Permission denied: 'dirname="a0_'
我做错了什么? BASH 命令(工作并完成工作)如下:
for ((i = 1; i <= 15000; i++))
do
index=$((i))
a0=$(awk "NR==${index} { print $2 }" Intensity_Wcm2_versus_a0_10_20_10_25_range.txt)
dirname="a0_${a0}"
mkdir -p $dirname
cd $dirname
done
据我所知,您希望将 dirname
参数作为环境变量传递给您的 mkdir
子进程。
而是预先构建您的 dirname
变量并将其传递给 subprocess.run
,如下所示:
def SMILEI(I):
os.chdir("/home/velenos14/PICsims/github/SMILEI_correctTunnelBSIrate/Smilei/SIMRESULTS/GPs_trial_Xenon_noOAM")
dirname = "a0_%.13f" % a0_from_IntensityWcm2(I)
subprocess.run(["mkdir", "-p", dirname], check=True, text=True)