从 Python 中的命令行参数获取输入路径和文件、输出路径和文件

马特垫

我正在尝试通过以下命令运行我的小 python 脚本:

./pdweb_convert.py -i /path_to_file/input_file_name -o /path_to_file/output_file_name

这是我的代码:

import sys
inputfile = sys.argv[1]
outputfile = sys.argv[2]
with open(inputfile, 'r') as i, open(outputfile, 'w') as o:
    o.seek(0)
    o.truncate()
    for line in i:
        if '0x' in line:
            new_line = line[9:50]
            new_line = new_line.strip().replace(' ', '').replace('\n', '')
            try:
                new_line = bytearray.fromhex(new_line).decode("ascii")
            except Exception:
                new_line = ''
            o.write(new_line)
        else:
            o.write(line)

如果我尝试运行该程序,我会在“inputfile = sys.argv[1]”行上收到“IndexError: list index out of range”错误。

任何想法如何解决这个问题并使我的程序通过键入上面的命令工作,其中 pdweb_convert 是我的脚本,输入文件将类似于 input.txt 和输出文件任何名称,因为它将在我的命令之后创建。

如果路径不存在或输入文件不存在,如何让它打印警告消息,正如我之前所说,我希望使用我在命令行中给它的名称自动生成(创建)输出文件, 前任:

pdweb_convert.py -i C:\Users\Work\Documents\input.txt -o C:\Users\Work\Documents\outputexample.txt

我究竟如何在我的脚本中编写这些代码,我今天早上开始用 Python 编程,所以我是超级初学者。谢谢!

拉黑
python ./pdweb_convert.py -i /path_to_file/input_file_name -o /path_to_file/output_file_name

(我假设您还在此命令的开头编写了 python。)

问题是您sys.argv返回了一个包含五个元素的列表,并且您正在调用12索引它们是-i/path_to_file/input_file_name相反,您应该调用24索引这些。当我运行你的代码时,它没有引发任何列表错误,但在逻辑上它出错了

C:\Users\Desktop>python x.py -i /path_to_file/input_file_name -o /path_to_file/output_file_name
Traceback (most recent call last):
  File "x.py", line 4, in <module>
    with open(inputfile, 'r') as i, open(outputfile, 'w') as o:
FileNotFoundError: [Errno 2] No such file or directory: '-i'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用参数-i从python中的命令行参数获取文件路径

在python中将文件路径作为命令行参数传递

命令行命令的Python转义文件路径

在python的命令行参数中将文件作为输入

如何从Python的命令行参数获取文件名

如何使用python获取名称和文件类型的文件路径

在命令行中输入文件名作为Python中的参数

如何获取在终端中输入的用于运行python文件的命令行?

在 Python 中从文件传递命令行参数

文件中的python脚本命令行参数

是否可以在python中保存目录和文件路径?

仅在命令行中列出具有路径和文件大小的文件

Python 在命令行中的相对路径

Python获取文件路径

使用命令行参数打开Python文件

在Python中获取命令行密码输入

获取python中的所有命令行参数

在python中获取命令行参数时出现错误

如果将目录路径作为命令行参数传递给python,则执行哪个python脚本?

Python获取相对于命令行用户的文件

如何修改python脚本以将外部文件用作命令行中的输入?

从Python中的打开文件获取路径

在Python中获取文件路径的特定部分

从python中的文本树获取文件路径

使Python文件中的HTTP Server继承与命令行版本相同的参数

来自命令行参数的文件搜索中的Python单词

如何进入在python中作为命令行参数给出的文件夹

获取Python中绝对文件路径的目录路径

如何调用另一个Python文件中需要命令行参数的python文件?