gpt4 book ai didi

python取消注释正确的行

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:41 26 4
gpt4 key购买 nike

我有一个文件如下:

line 1: _____
...
# for AAA
#export CONFIG = AAA_defconfig

# for BBB, BbB, Bbb, BBb3
#export CONFIG = BBB_defconfig

# for CCC, CcC, Ccc, Ccc1
#export CONFIG = CCC_defconfig
...
other lines

我想操纵文件,以便根据给定的字符串,我可以导出正确的“CONFIG”,并对其他字符串进行注释。例如如果我得到“CcC”,那么文件将被操作为

line 1: _____
...
# for AAA
#export CONFIG = AAA_defconfig

# for BBB, BbB, Bbb, BBb3
#export CONFIG = BBB_defconfig

# for CCC, CcC, Ccc, Ccc1
export CONFIG = CCC_defconfig
...
other lines

用 python 做的好方法是什么?

提前致谢!!

最佳答案

那为什么不把它变成

line = 'xxxx'
CONFIG = default_deconfig

if line == 'AAA':
CONFIG = AAA_defconfig
elif line == 'CCC':
CONFIG = CCC_defconfig
...

除非这不是一个 python 文件并且你想操作它。看起来像那样。

在这种情况下,创建一个配置生成器,它将根据行变量创建一个配置文件。

[编辑:基于评论]

您可能需要进行一些调整,但这应该可行。

# Simple , crude solution

f = open('file1', 'r')
manipulated_lines = []
readFirstLine = False
config = ''
configComma = ''
uncommentLine = 0
for line in f:
tokens = line.split()

if uncommentLine == 1:
# this is comment line
if tokens[0] == '#export':
manipulated_lines.append(line[1:])
uncommentLine = uncommentLine + 1
continue
elif uncommentLine > 1:
manipulated_lines.append(line)
continue

if not readFirstLine:
config = line.rstrip('\n')
configComma = config + ','
readFirstLine = True

# Process additional lines
manipulated_lines.append(line)

if len(tokens) > 0 and tokens[0] == '#':
if tokens[1] == 'for':
if config in tokens or configComma in tokens:
uncommentLine = uncommentLine + 1
continue

print manipulated_lines
f.close()
fw = open('file2', 'w')
fw.writelines(manipulated_lines)
fw.close()

输入:文件1

CCC
# for AAA
#export CONFIG = AAA_defconfig

# for BBB, BbB, Bbb, BBb3
#export CONFIG = BBB_defconfig

# for CCC, CcC, Ccc, Ccc1
#export CONFIG = CCC_defconfig
...

输出:文件2

CCC
# for AAA
#export CONFIG = AAA_defconfig

# for BBB, BbB, Bbb, BBb3
#export CONFIG = BBB_defconfig

# for CCC, CcC, Ccc, Ccc1
export CONFIG = CCC_defconfig
...

关于python取消注释正确的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com