我想使用python脚本检查和编辑某些ns区域文件,因为它们缺少字符串开头的“@”符号
IN MX 10 mail.example.com
我需要澄清一下如果在'IN'之前验证是否没有任何其他字符串或字符,只需要空格。
这是我的代码
with open("zone_file.zone", "r+") as file:
for line in file:
string = line.lstrip()
if line.lstrip().startswith('IN MX'):
line = "@"+line[1:]
file.write(line)
但它什么都不做
基本上代码是
for line in file:
if str in line:
line= "@"+line[1:]
但我需要检查IN字符串
之前是否存在字符编辑: 我有:
IN MX
我想要
@ IN MX
但空白空间不固定
edit2:IN和MX之间的空间也没有固定,所以我想不出来解决。
这是我所拥有的一个例子
IN MX 20 mail2.example.com.
IN MX 50 mail3
example.com. IN A 192.0.2.1
IN AAAA 2001:db8:10::1
ns IN A 192.0.2.2
IN AAAA 2001:db8:10::2
编辑3:这是我更新的代码,但它还没有工作
with open(filename, 'r+') as f:
file_di_zona = f.readlines()
for line in file_di_zona:
if line.lstrip().startswith('IN') and 'MX' in line:
line = '@' + line[1:]
#print line
file_di_zona.write(str(line))
答案 0 :(得分:1)
for line in file:
if line.lstrip().startswith('IN') and 'MX' in line:
line = "@"+line[1:]
file.write(line)
最佳解决方案,因为如果你有大文件,这将读得很好并且比正常更快地改变它
import sys
for line in sys.stdin:
if line.lstrip().startswith('IN') and 'MX' in line:
line = '@' + line[1:]
print line
保存它,因为它在python文件test.py
中现在转到文件夹打开终端注意test.py和ur区域文件应该在同一目录中或者给出正确的路径来读取文件
打印命令
python test.py < zone_file.zone > modifiedzone.zone