我刚开始学习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
做的很少,它实际上是多余的 如果 你假设用户输入是有效的。
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
做的很少,它实际上是多余的 如果 你假设用户输入是有效的。