剥离WhiteSpace&使用命令行中的python文件可执行文件的注释

时间:2016-04-13 01:33:43

标签: python

尝试编写一个程序,从命令行接收我的可执行文件+一个名为'no-comments'的可选参数和文件。

因此,如果有人在命令行中写道:stripWhiteSpace.py file.rtf 然后它会删除除新行之外的所有空格。

如果有人在命令行中写道:stripWhiteSpace.py no-comments file.rtf 然后它将删除除新行之外的所有空格,并删除以“//”开头的所有C / C ++ / Java样式注释以及之后的任何内容(整个注释)。

这是我的代码(名为stripWhiteSpace.py):

import sys
file = sys.argv[-1]

with open(file, 'r+') as f:
    final_file = ""
    if sys.argv[1] == "no-comments":
        for line in f:
            line = line.partition('//')[0]
            line = line.strip(' \t\r')
            final_file += line
    else:
        for line in f:
            line = line.strip(' \t\r')
            final_file += line

    f.write(final_file) 

该文件已成功通过我的python文件传递。问题是,它没有改变。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

问题在于您如何使用strip()。执行line.strip(' \t\r')只会删除' \t\r',即空格,后跟一个制表符,然后是回车符。我不认为这会经常发生。语法应为line.strip([' ', '\t', '\r'])

说了这么多,如果你想删除所有空格,strip不会这样做,它只会删除该行开头或结尾的空白区域。如果要删除所有空格,则需要使用.replace()