2016-07-26 78 views
0

我试图生成一个需要3个输入参数并创建一个名称为3个参数串联的目录的python脚本。我给的命令是python new.py user1 32男性,我应该得到一个创建为user1_32_male的目录名称,但我得到的目录名称为user_name +“”+ age +“”+性别。可有人请纠正我的代码在python中创建用户输入目录名称

#!/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

选择一个类型的引号('“'或'‘')并使用它。你们都在同一个表达式混合并用废话结束了。 – khelwood

+0

的字符串'R’./ USER_NAME +” _“+ age +”_“+ gender”从单引号到单引号,如果你不想把其他的东西放在字符串里面,不要把它们放在字符串里面 – TessellatingHeckler

回答

0

你把你想表达评估您在报价所需的目录名,所以也没有得到评估。尝试:

newpath = r'./' + user_name + "_" + age + "_" + gender 
+0

现在请使用Pthon字符串格式为此。 – jsbueno

+0

工作。谢谢! –

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) 
相关问题