我在pycharm中创建了一个fileSearch程序,我想使用来自用户的参数在我的命令行中运行它。
import math
def get_distance(lat_1, lng_1, lat_2, lng_2):
d_lat = lat_2 - lat_1
d_lng = lng_2 - lng_1
temp = (
math.sin(d_lat / 2) ** 2
+ math.cos(lat_1)
* math.cos(lat_2)
* math.sin(d_lng / 2) ** 2
)
return 6373.0 * (2 * math.atan2(math.sqrt(temp), math.sqrt(1 - temp)))
我想使用以下用户输入在命令行中运行它:
import os
from os.path import join
lookfor = "*insert file name*"
for root, dirs, files in os.walk("*choose directory*"):
print("searching"), root
if lookfor in files:
print "Found %s" % join(root, lookfor)
break
答案 0 :(得分:0)
我不确定您是否可以,但您可以编写第一个询问目录的代码,然后从此代码启动其他代码
答案 1 :(得分:0)
您可以使用argparse
命令输入参数解析器和选项。你也可以使用sys.arv
。有关详细信息,您可以浏览here。
import os
from os.path import join
# argparse is the python module for user command line parameter parser.
import argparse
# command input from the user with given option
parser = argparse.ArgumentParser()
parser.add_argument('-fileName.', action='store',
dest='fileName',
help='Give the file Name')
parser.add_argument('-Directory', action='store',
dest='dir',
help='Give the Directory Name')
# parsing the parameter into results
results = parser.parse_args()
# lookfor = "*insert file name*"
# retrieve the store value from the command line input.
lookfor = results.fileName
dir = results.dir
# for root, dirs, files in os.walk("*choose directory*"):
for root, dirs, files in os.walk(dir):
print("searching"), root
if lookfor in files:
print("Found %s" % join(root, lookfor))
break
命令行示例:
python fileSearch.py -fileName filename.txt -Directory C:/MyProgram
答案 2 :(得分:0)
对于命令行应用,我想使用# app.py
import click
@click.command()
@click.option('-f', '--filename', help='File name')
@click.option('-d', '--directory', help='Directory')
def run(filename, directory):
for root, dirs, files in os.walk(directory):
print('Searching: {}'.format(root))
if filename in files:
print "Found %s" % join(root, filename)
break
if __name__ == '__main__':
run()
包http://click.pocoo.org/5/
$ python app.py -f file.txt -d dirname
$ python app.py --filename=file.txt --directory=dirname
$ python app.py --help // prints your help text
然后从命令行运行
?
Click具有大量强大功能,可构建强大的CLI应用程序。就像我说的那样,这是我的转到。