【问题标题】:Using search string on multiple backup config files python and save to new file在多个备份配置文件python上使用搜索字符串并保存到新文件
【发布时间】:2021-08-25 05:18:31
【问题描述】:

我是 Python 的新手。我在同一路径中有多个cisco设备的配置文件,我想检查是否配置了Radius IP 10.10.10.4的设备数量,但是当我运行到一个文件时,我发现如下错误(某些文件有问题)

Traceback(最近一次调用最后一次):文件“D:/Test Python/Config 文件/testoslist.py”,第 6 行,在 如果 f.read() 中的“10.10.10.4”:文件“C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\encodings\cp874.py”, 第 23 行,在解码中 return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 152485:字符映射到

import os
import os.path
for fname in os.listdir('.'):
 if os.path.isfile(fname):
    f = open(fname)
    if '10.10.10.4' in f.read():
        print(fname)
       
    f.close()

如果我想将输出写入新文件,我该怎么办?

【问题讨论】:

  • 欢迎来到 SO!请使您的标题与您正在处理的错误相关,例如“UnicodeDecodeError: 'charmap' codec can't decode byte when reading files in python”。这将帮助其他人更容易找到它。有关更多提示,请参阅stackoverflow.com/help/how-to-ask
  • 本文“文件”部分中的信息可能就是您要查找的信息:https://stackoverflow.com/a/35444608/2550702

标签: python


【解决方案1】:

尝试使用编码打开文件名。

file = open(filename, encoding="utf8")

【讨论】:

  • 感谢您帮助我。但是在添加 encoding="utf8" 之后,我在另一个文件中发现了一个错误,如下所示 (result, consumes) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode位置 357516 中的字节 0xef:无效的继续字节
  • 查看此链接可能对您有所帮助stackoverflow.com/questions/40621799/…
  • 非常感谢。这是工作,我还有一个问题,如果我想将所有输出保存到一个新文件中,我该怎么做。我尝试使用 codecs.open("newfile.txt", 'w') as nf: nf.write(fname+ "\n") 但它是一个覆盖,而不是继续,输出只是显示了最后一个文件名。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
相关资源
最近更新 更多