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
并且它正在运行。
答案 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
做得很少,实际上是多余的如果您认为用户输入有效。