2016-07-26 45 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)