我刚开始学习python。我想获取文件名作为用户输入

时间:2015-01-23 12:14:57

标签: function python-2.7

def copy_file(from_file,to_file):
    content = open(from_file).read()
    target = open(to_file,'w').write(content)
    print open(to_file).read()

def user_input(f1):
    f1 = raw_input("Enter the source file : ")

user_input(f1)
user_input(f2)

copy_file(user_input(f1),user_input(f2))

这有什么错误?我尝试使用argv并且它正在运行。

1 个答案:

答案 0 :(得分:1)

您没有调用函数user_input(使用())。 (由OP修正)。

此外,您需要从user_input返回一个字符串。目前,您正在尝试将 local 的变量f1设置为函数user_input。虽然可以使用global进行此操作 - 我不建议这样做(这样可以保留代码DRY)。

可以通过改变状态来做与对象类似的事情。 String是一个对象 - 但由于字符串是immutable,并且你不能让函数改变它们的状态 - 这种期望函数改变它所给出的字符串的方法也注定要失败

def user_input():
    return raw_input("Enter the source file :").strip()

copy_file(user_input(),user_input())

您可以看到user_input做得很少,实际上是多余的如果您认为用户输入有效。