python parser read_file()AttributeError:“ NoneType”对象没有属性“ infile”

时间:2018-09-17 18:04:00

标签: python-3.x parsing readfile

%%writefile testcipher.py
import argparse
def parse_command_line():
    parser=argparse.ArgumentParser()
    parser.add_argument("infile",type=argparse.FileType('r'),help="show this help message and exit")
    args=parser.parse_args()

def read_file(file_path):
    with open(file_path,"r") as f:
        message=f.read()
    return message
args = parse_command_line()
read_file(args.infile)

----------

%%bash

python3 testcipher.py plain_message.txt


----------

Traceback (most recent call last):
  File "testcipher.py", line 13, in <module>
    read_file(args.infile)
AttributeError: 'NoneType' object has no attribute 'infile'

我试图用解析器参数读取文件,但是它不起作用..请帮忙..

忽略单词要求忽略单词要求忽略单词

2 个答案:

答案 0 :(得分:1)

(1)您需要在parse_command_line()函数中返回“ args”。

(2)您的add_argment函数使用您的参数作为文件名直接导致打开文件。

function fb_change_search_url_rewrite() {
    if ( ! empty( $_GET['storyid'] ) ) {
        wp_redirect( home_url( "/webinar01/" ) . urlencode( get_query_var( 'storyid' ) ) );
        load_template( realpath(__DIR__ . '/..') . '/landing-page-15.php' );        
        exit();
    }   
}
add_action( 'template_redirect', 'fb_change_search_url_rewrite' );
//additional rewrite rule + pagination tested
function rewrite_search_slug() {
    set_query_var('storyid', $_GET['storyid']);
    add_rewrite_rule(
        'find(/([^/]+))?(/([^/]+))?(/([^/]+))?/?',
        'index.php?id=$matches[2]&storyid=$matches[6]',
         'top'      
    );
}
add_action( 'init', 'rewrite_search_slug' );

答案 1 :(得分:0)

parse_command_line必须返回args对象。实际上,您的解析函数返回None。

当然,没有任何名称的属性。