在python中创建用户输入目录名称
问题描述:
我试图生成一个需要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)
答
你把你想表达评估您在报价所需的目录名,所以也没有得到评估。尝试:
newpath = r'./' + user_name + "_" + age + "_" + gender
+0
现在请使用Pthon字符串格式为此。 – jsbueno
+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)
选择一个类型的引号('“'或'‘')并使用它。你们都在同一个表达式混合并用废话结束了。 – khelwood
的字符串'R’./ USER_NAME +” _“+ age +”_“+ gender”从单引号到单引号,如果你不想把其他的东西放在字符串里面,不要把它们放在字符串里面 – TessellatingHeckler