首页 > 解决方案 > 将路径解析为python脚本中的参数

问题描述

这是 python 脚本的一部分xyz.py

#!/usr/bin/env python

from openpyxl import Workbook
import os
wb = Workbook()
path = "/home/Final_analysis/"
#print(os.listdir())
lis = os.listdir(path)

我想将此脚本与存储在不同目录中的不同输入文件一起使用。为了让这个脚本在多个文件上运行,我每次都必须更改脚本的这一部分。

path= "/home/Final_analysis/"

例如,我可以在 python 脚本之后将路径解析为参数吗

xyz.py path_to_my_file

在命令中,以便每次我不必更改脚本?

写入sys.argv[1]路径后,我尝试按上述方式运行脚本

#!/usr/bin/env python

from openpyxl import Workbook
import os
wb = Workbook()
path = "sys.argv[1]"
#print(os.listdir())
lis = os.listdir(path)

并运行命令xyz.py /home/final_analysis

但它仍然没有检测到路径。我收到以下错误

Traceback (most recent call last):
  File "combine_excel.py", line 8, in <module>
    lis = os.listdir(path)
OSError: [Errno 2] No such file or directory: 'sys.argv[1]'

我在 python 2.7.6 中使用。

标签: python

解决方案


不要sys.argv[1]作为字符串传递,直接使用:path = sys.argv[1]

#!/usr/bin/env python

from openpyxl import Workbook
import os
import sys
wb = Workbook()
path = sys.argv[1]
#print(os.listdir())
lis = os.listdir(path)

(根据 zwer 对该问题的评论。)


推荐阅读