如何使用用户的参数在命令行中运行pycharm文件?

时间:2017-06-25 04:10:08

标签: python pycharm

我在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

3 个答案:

答案 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应用程序。就像我说的那样,这是我的转到。