我有一个文件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
答案 0 :(得分:1)
定义功能是不够的。您还需要调用:
copy_default_files()
或
config.copy_default_files()
(取决于您是将config.py
作为脚本运行还是将其作为模块导入。)