我正在尝试生成一个python脚本,它接受3个输入参数并创建一个名称为3个参数的串联的目录。我给出的命令是python new.py user1 32 male我应该得到一个名为user1_32_male的目录名,但我得到的目录名为user_name +“”+ age +“”+ gender。有人可以更正我的代码
#!/usr/bin/python
import pexpect
import numpy as np
#import matplotlib.pyplot as plt
#import pylab as p
from math import *
from sys import argv
import os.path
import numpy as np
import os, sys
#print "Hello, Python!"
script, user_name, age, gender = argv
dirname = user_name + "_" + age + "_" + gender
newpath = r'./dirname'
if not os.path.exists(newpath):
os.makedirs(newpath)
答案 0 :(得分:0)
您将要评估的表达式放在引号中所需的目录名称中,因此不会对其进行评估。尝试:
newpath = r'./' + user_name + "_" + age + "_" + gender
答案 1 :(得分:0)
首先,我注意到你不止一次导入东西。没有理由导入os.path
,因为它已包含在os
中。 sys
也是如此。
在这种情况下使用字符串替换更容易。 %
之后的元组包含的值将替换为%s
之前的部分中的%
。
from sys import argv
import os.path
script, user_name, age, gender = argv
newpath = '%s_%s_%s' % (user_name, age, gender)
if not os.path.exists(newpath):
os.makedirs(newpath)