如何使用格式在输出字符串中插入标点符号?

问题描述 投票:1回答:2

我需要解析包含特定关键字的行的文本,并以这种格式打印出来(空格也很重要):

第7行,点击#1:第8行,点击#2:....

当我尝试使用{:: =}和格式插入','和'#'时,它会输出一个错误。

这是我的代码:

    #!/usr/bin/env python
    import sys

    if len(sys.argv) <= 2:
        print("Error", file=sys.stderr)

    filename = sys.argv[1]
    keyword = sys.argv[2]

    line_count = 0
    keyword_count = 0
    with open(filename, "r") as f:
         for l in f.readlines():
         line_count += 1
         if keyword in l:
            keyword_count += 1
            print ('{} {} {} {} {}'.format('line', line_count, 'hit', 
         keyword_count, l.rstrip()))
python string format
2个回答
0
投票

我试着用script在我的Ubuntu机器上运行你的Python 3.6.7

当我尝试使用{:: =}和格式插入','和'#'时,它会输出一个错误。

我修复了缩进和你的format字符串。我已经从你的format字符串中删除了第一个和第三个参数。我想你想以相同的方式打印line字符串和hit字符串然后它们不应该在format参数中。我还添加了,#符号来打印所需格式的命中。

#!/usr/bin/env python
import sys

if len(sys.argv) <= 2:
    print("Error", file=sys.stderr)

filename = sys.argv[1]
keyword = sys.argv[2]

line_count = 0
keyword_count = 0
with open(filename, "r") as f:
     for l in f.readlines():
        line_count += 1
        if keyword in l:
            keyword_count += 1
            print ('line {0}, hit #{1}: {2}'.format(line_count, keyword_count, l.rstrip()))

我在使用具有print关键字的文件进行修改后测试了您的脚本。脚本的输出如下:

enter image description here


0
投票

在Print Statement中使用如下所示

print ('{} {}, {} #{}, {}'.format('line', line_count, 'hit', 
         keyword_count, l.rstrip()))

它将打印如下

第0行,点击#0,l

我在这里的字符串中

© www.soinside.com 2019 - 2024. All rights reserved.