我需要在运行python文件时传递一些参数。
参数是一个路径,/home/user/
,它应该存储为列表,所以我可以在以后的代码中使用它。
示例:运行文件时。 findfiles.py / home / user / / home / user2 /
我想将列表传递给glob.glob('path *.txt')
,因此它可以搜索以.txt结尾的文件
这就是我现在所得到的:
import glob
test = glob.glob('*.txt')
text1 = "file "
text2 = " has following 2 line inside"
for files in test:
print text1 + files + text2
f = open(files, "r")
print(f.readline())
print(f.readline())
它在* .txt之后搜索当前目录并列出文件和前两行。
你有几个选择:
1.使用Argparse
,阅读更多:https://docs.python.org/3/library/argparse.html
2.使用sys.argv
,在你的简单案例中看起来最简单:
import sys
script_argument = sys.argv[1:]
print script_argument
# output is : "['/home/user/', '/home/user2/']"
根据你的需要使用它。
Thx的提示,但我最终使用的是。
printfiles.py / home / user / / home / user2 /其中两个参数将存储在列表中。
import glob, sys, os
list = []
list = sys.argv
for stuff in list:
result = glob.glob(os.path.join(stuff, '*.txt'))
print stuff
会返回它找到的.txt文件。我以后可以用结果打开它们。
for files in result:
print text1 + files + text2
f = open(files, "r")
print(f.readline())