【问题标题】:Taking files as input in command line arguments in python在 python 中将文件作为命令行参数的输入
【发布时间】:2019-03-01 19:23:23
【问题描述】:

我将路径作为命令行的输入,但它没有从其他目录输入,我的代码是这样的

filename1 = os.path.basename(sys.argv[1])
filename2 = os.path.basename(sys.argv[2])
filename3 = os.path.basename(sys.argv[3])
wk1 = openpyxl.load_workbook (filename1)
wk2 = openpyxl.load_workbook (filename2)

并像这样传递命令行参数,

python Final.py "C://Users//Folder One//Folder Two//Input1.xlsx" 
"C://Users//Folder One//Folder Three//Input2.xlsx" "C://Users//Folder 
One//Folder Four/Output.xlsx"

FileNotFoundError: [Errno 2] No such file or directory: 'Input1.xlsx'

我需要输入 2 个文件并将输出存储在第三个文件中,即Output.xlsx。第三个参数决定输出文件的路径。

【问题讨论】:

  • 如果您只获取文件名(而不是完整路径),那么如果在调用 load_workbook 之前不先设置工作/当前目录,那将如何工作?你传递了完整路径,为什么只使用文件名?
  • @Tim Williams 我在命令行参数中遇到错误,即找不到输出文件的文件,它工作正常,但对于输入文件它不工作
  • 您在第二个参数中使用了两次双引号。为什么会这样?
  • 这里只是写错了@shahkalpesh
  • 请附上错误信息。

标签: excel python-3.x command-line-arguments openpyxl


【解决方案1】:

如果您尝试从另一个目录读取,那么也许您应该将文件路径直接传递给 load_workbook 函数。

os.path.basename 函数返回文件的名称​​Input1.xlsx。由于您从不同的位置调用脚本,它将无法从源目录中检测到文件。现在,您的脚本尝试从与 Final.py 相同的目录或您在尝试加载工作簿之前导航到的任何其他目录中查找您的输入文件。

【讨论】:

  • 我试过了,wk1 = openpyxl.load_workbook (argv[1])这不起作用@kerwei
  • argv[1] 还是 sys.argv[1]?
猜你喜欢
  • 2019-02-27
  • 2010-09-16
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
相关资源
最近更新 更多