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

I just started learning python. I want to get file name as user input

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 试过了,它工作正常。

您没有调用函数 user_input(通过使用 ())。 (由 OP 修复)。

此外,您需要 return 来自 user_input 的字符串。当前您正在尝试将 f1 变量 local 设置为函数 user_input。虽然这可以使用 global - I do not recommend this (this beats keeping your code DRY).

可以通过更改对象的状态来对对象执行类似的操作。字符串是一个对象——但是由于字符串是 immutable,并且你不能让函数改变它们的状态——这种期望函数改变它给定的字符串的方法也注定要失败。

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

copy_file(user_input(),user_input())

你可以看到 user_input 做的很少,它实际上是多余的 如果 你假设用户输入是有效的。