10 python
如果我们从命令行参数和提取文件传递文件,任何人都可以指导我如何获取文件路径.如果我们还需要检查文件是否存在于特定目录中
python.py /home/abhishek/test.txt
Run Code Online (Sandbox Code Playgroud)
获取文件路径并检查test.txt是否存在于abhishek文件夹中.
我知道这可能很容易,但我对pytho有点新意
eum*_*iro 19
import os
import sys
fn = sys.argv[1]
if os.path.exists(fn):
print os.path.basename(fn)
# file exists
Run Code Online (Sandbox Code Playgroud)
从 python 3.4 开始,您可以将argparse与pathlib一起使用:
import argparse
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument("file_path", type=Path)
p = parser.parse_args()
print(p.file_path, type(p.file_path), p.file_path.exists())
Run Code Online (Sandbox Code Playgroud)
我认为最优雅的方法是使用“ ArgumentParser这样”,您甚至可以得到-h帮助用户弄清楚如何传递参数的选项。我还包括了一个可选参数(--outputDirectory)。
现在您可以简单地执行 python3 test.py /home/test.txt --outputDirectory /home/testDir/
import argparse
import sys
import os
def create_arg_parser():
""""Creates and returns the ArgumentParser object."""
parser = argparse.ArgumentParser(description='Description of your app.')
parser.add_argument('inputDirectory',
help='Path to the input directory.')
parser.add_argument('--outputDirectory',
help='Path to the output that contains the resumes.')
return parser
if __name__ == "__main__":
arg_parser = create_arg_parser()
parsed_args = arg_parser.parse_args(sys.argv[1:])
if os.path.exists(parsed_args.inputDirectory):
print("File exist")
Run Code Online (Sandbox Code Playgroud)