我正在研究一个较大的脚本,该脚本遍历目录结构以对每个文件执行操作。
我在弄清楚如何在命令行(作为os.walk的起点)中将目标目录作为参数传递时遇到麻烦。
有人可以建议我做错了什么吗?
import os
import sys
def main():
for root, dirs, files in os.walk(sys.argv[1])
for item in files:
print(items)
if __name__ == '__main__':
main(sys.argv[1])
答案 0 :(得分:3)
是的,您最初对main的调用的main没有任何参数:
import os
import sys
def main(): # this has 0 arguments, instead you included it inside of the func.
for root, dirs, files in os.walk(sys.argv[1]):
for item in files:
print(items)
if __name__ == '__main__':
main(sys.argv[1]) # likely the source of your error since main() has the argument inside the func.
如果您希望main有参数:
def main(args): # any generic argument to be called
for root, dirs, files, in os.walk(args):
for item in files:
print(items)
if __name__ = '__main__':
main(sys.argv[1]) # specific argument called by function