请问有人能指导我如何通过命令行参数获取文件路径并提取文件吗?如果需要检查文件是否存在于特定目录中,该怎么办?
python.py /home/abhishek/test.txt
获取文件路径并检查test.txt是否存在于abhishek文件夹中。
我知道这可能很简单,但我对Python还有点陌生。
请问有人能指导我如何通过命令行参数获取文件路径并提取文件吗?如果需要检查文件是否存在于特定目录中,该怎么办?
python.py /home/abhishek/test.txt
获取文件路径并检查test.txt是否存在于abhishek文件夹中。
我知道这可能很简单,但我对Python还有点陌生。
import os
import sys
fn = sys.argv[1]
if os.path.exists(fn):
print os.path.basename(fn)
# file exists
argparse
模块。 - eumiro我认为最优雅的方法是使用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")
import sys
import os
path = sys.argv[1]
# Check if path exits
if os.path.exists(path):
print "File exist"
# Get filename
print "filename : " + path.split("/")[-1]
dir1
,并且您正在尝试运行位于dir2
中的脚本,并且您正在为脚本dir3
传递相对路径参数,例如python3 dir2/myscript.py dir3
,那么:dir3
应该相对于当前目录dir1
而不是相对于脚本所在的目录dir2
。 - nakakapagpabagabag