Python 困惑如何使用argparse

Python 困惑如何使用argparse,python,argparse,Python,Argparse,我正在尝试编写一个python脚本,可以通过 python script.py --input file.txt 或 script.py将接收file.txt文件并打开/读取 这就是我到目前为止所做的: #!/usr/bin/python import argparse parser = argparse.ArgumentParser(description="I'm not sure what I should write here.") parser.add_argument('-i',

我正在尝试编写一个python脚本,可以通过

python script.py --input file.txt

script.py将接收file.txt文件并打开/读取

这就是我到目前为止所做的:

#!/usr/bin/python
import argparse

parser = argparse.ArgumentParser(description="I'm not sure what I should write here.")
parser.add_argument('-i','--input', help='Input file name',required=True)
args = parser.parse_args()
现在…我实际上如何访问输入文件


我想要的是写入一个输出文件,例如python script.py--outputfile file.csv?我不明白如何与编写文件交互。抱歉,这太简单了。

您可以通过以下方式访问用户在
-i
之后输入的字符串:

args.input
例如:

argp_test.py  -i my_file_name.txt
现在:

印刷品:

my_file_name.txt
下一步是读取文件内容:

with open(args.input) as fobj:
    for line in fobj:
          # do something with this line
顺便说一句,您在这行中遇到语法错误:

parser = argparse.ArgumentParser(description='I'm not sure what I should write here.')
应该是这样的:

parser = argparse.ArgumentParser(description="I'm not sure what I should write here.")
当您在字符串中使用
时,您需要在字符串的开头和结尾使用
。因此,请使用:

"I'm not"
而不是:

'I'm not'

您可以通过以下方式访问用户在
-i
之后输入的字符串:

args.input
例如:

argp_test.py  -i my_file_name.txt
现在:

印刷品:

my_file_name.txt
下一步是读取文件内容:

with open(args.input) as fobj:
    for line in fobj:
          # do something with this line
顺便说一句,您在这行中遇到语法错误:

parser = argparse.ArgumentParser(description='I'm not sure what I should write here.')
应该是这样的:

parser = argparse.ArgumentParser(description="I'm not sure what I should write here.")
当您在字符串中使用
时,您需要在字符串的末尾使用
。因此,请使用:

"I'm not"
而不是:

'I'm not'
这很简单

#!/usr/bin/python
import argparse

parser = argparse.ArgumentParser(description="Something like -- File reader: reads file line by line.")
parser.add_argument('-i','--input', help='Input file name',required=True)
args = parser.parse_args()

with open(args.input) as fp:
    for line in fp:
       print line
如果要将某些内容写入输入文件。在写入模式下打开文件,并向其写入所需内容

with open(args.input, 'w') as fp:
    fp.write("Hello World!")
如果要写入单独的文件,请在写入模式下向argparser添加一个参数,然后写入

parser = argparse.ArgumentParser(description="Something like -- File reader/writer: reads/writes files line by line.")
parser.add_argument('-i','--input', help='Input file name',required=True)
parser.add_argument('-o','--output', help='Output file name',type=argparse.FileType('w'),required=True)
args = parser.parse_args()

with open(args.input) as fp:
    for line in fp:
        print line

with open(args.output) as fp:
    fp.write("Hello World!")
这很简单

#!/usr/bin/python
import argparse

parser = argparse.ArgumentParser(description="Something like -- File reader: reads file line by line.")
parser.add_argument('-i','--input', help='Input file name',required=True)
args = parser.parse_args()

with open(args.input) as fp:
    for line in fp:
       print line
如果要将某些内容写入输入文件。在写入模式下打开文件,并向其写入所需内容

with open(args.input, 'w') as fp:
    fp.write("Hello World!")
如果要写入单独的文件,请在写入模式下向argparser添加一个参数,然后写入

parser = argparse.ArgumentParser(description="Something like -- File reader/writer: reads/writes files line by line.")
parser.add_argument('-i','--input', help='Input file name',required=True)
parser.add_argument('-o','--output', help='Output file name',type=argparse.FileType('w'),required=True)
args = parser.parse_args()

with open(args.input) as fp:
    for line in fp:
        print line

with open(args.output) as fp:
    fp.write("Hello World!")

您向解析器请求输入文件的名称(即全部argparse是在命令行上传递的一个选项块),然后打开它。您向解析器请求输入文件的名称(即全部argparse是在命令行上传递的一个选项块),然后打开它。