为什么python独立文件操作功能不起作用?

时间:2015-01-21 17:41:10

标签: python function

我有一个文件test.py很好用。见代码:

import os
import shutil
import re
for root, dirs, files in os.walk("../config/"):
    for file in files:
        print os.path.join(root, file)
        if file.endswith(".txt") and file.startswith("default_"):
            file_name = os.path.basename(os.path.join(root, file))
            file_name = re.sub(r'default_','',file_name)
            shutil.copy(os.path.join(root, file),os.path.join(root,file_name))

但是当我将代码包装到一个函数中并将其放在另一个文件config.py中时。我在另一个文件中调用该函数作为config.copy_default_files(),它不起作用。所以我在函数的末尾放了一个raw_input()来查看函数是否执行了,它确实打印了'miao',但它没有打印出文件列表。并且不会生成或复制任何文件。 我很困惑。有人可以解释一下吗?任何帮助将非常感谢。如果您需要更多信息,请告诉我。 Manythanks!

import os
import shutil
import re
def copy_default_files(work_dir = "../config/"):
    for root, dirs, files in os.walk(work_dir):
        for file in files:
            print os.path.join(root, file)
            if file.endswith(".txt") and file.startswith("default_"):
                file_name = os.path.basename(os.path.join(root, file))
                file_name = re.sub(r'default_','',file_name)
                shutil.copy(os.path.join(root, file),os.path.join(root,file_name))
    raw_input('miao')
    return 0                 

1 个答案:

答案 0 :(得分:1)

定义功能是不够的。您还需要调用

copy_default_files()

config.copy_default_files()

(取决于您是将config.py作为脚本运行还是将其作为模块导入。)