在命令行中为python os.walk脚本定义参数

时间:2018-09-20 04:53:42

标签: python

我正在研究一个较大的脚本,该脚本遍历目录结构以对每个文件执行操作。

我在弄清楚如何在命令行(作为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])

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