使用python操作和替换第一个字符串并维护第二个字符串行

切诺伊

我有一个由多行数据(systemid 和主机名)组成的文件(sysid.txt),如下所示

0192.4500.0000 uue01.re1                              
0192.4500.0010 ccu01.re1                              
0192.4500.0110 uue02.re1                               
0192.4500.0001 core1.re2                                   

根据此处的信息和帮助,第一个字符串(数字)成功替换为需要但第二个字符串(主机名)丢失,并且当我运行下面的代码时,输​​出显示在单行中。

file1 = open('sysid.txt', 'r')
file2 = open('sysip.txt', 'w')
file1_cont = file1.readlines()
for line in file1_cont:
    line = line.replace('.', '')
    f = itemgetter(slice(0,3), slice(3,6), slice(6,9), slice(9,12))
    line = '.'.join(f(line.replace('.','')))
    line = '{}.{}.{}.{}'.format(*map(int, f(line.replace('.', ''))))
    file2.write(line)
    print(line)

sysip.txt 的输出

10.89.0.010.89.0.110.89.0.3210.89.0.3310.89.0.3410.89.0.3510.89.0.64

阅读每一行,我想替换第一个字符串(数字)并保持第二个字符串(主机名)如下

192.45.0.0 uue01.re1                              
192.45.0.10 ccu01.re1                              
192.45.0.110 uue02.re1                               
192.45.0.1 core1.re2

我如何操作第一个字符串/数字并将输出行(file2.write(line))保存在新行中,同时保持上面的第二个字符串。

感谢您的支持和指导。

#

更新列表.txt...

System ID      Hostname                                        
0192.4500.0000 uue01.re1                              
0192.4500.0010 ccu01.re1                              
0192.4500.0110 uue02.re1                               
0192.4500.0001 core1.re2 

{master}
脏位

列表.txt:

0192.4500.0000 uue01.re1                              
0192.4500.0010 ccu01.re1                              
0192.4500.0110 uue02.re1                               
0192.4500.0001 core1.re2   

因此

def removeZeros(ip):
    # splits the ip by "."
    # converts the words to integeres to remove leading removeZeros
    # convert back the integer to string and join them back to a string
    new_ip = ".".join([str(int(i)) for i in ip.split(".")])
    return new_ip

logFile = "list.txt"
with open(logFile) as f:
    content = f.readlines()
# you may also want to remove empty lines
content = [l.strip() for l in content if l.strip()]

for line in content:
    line = line[1:].split(" ")[0]
    line =  removeZeros(line).replace(removeZeros(line).split(".", 2)[1],removeZeros(line).split(".", 2)[1][:-2] + ".0")
    print(line)

输出

192.45.0.0
192.45.0.10 
192.45.0.110 
192.45.0.1 

编辑

如果要将新 ip 覆盖list到同一文件,可以创建两个单独的列表来存储ipstext

logFile = "list.txt"
with open(logFile) as f:
    content = f.readlines()
# you may also want to remove empty lines
content = [l.strip() for l in content if l.strip()]
ipList = []
stList = []
for line in content:
    stList.append(line[1:].split(" ")[1])
    line = line[1:].split(" ")[0]
    line =  removeZeros(line).replace(removeZeros(line).split(".", 2)[1],removeZeros(line).split(".", 2)[1][:-2] + ".0")
    ipList.append(line)
    # print(line)

with open(logFile, "w") as f:
    for index in range(len(ipList)):
        f.write(str(ipList[index]) + " " + str(stList[index]) + "\n")

输出(来自文件)

192.45.0.0 uue01.re1
192.45.0.10 ccu01.re1
192.45.0.110 uue02.re1
192.45.0.1 core1.re2

编辑 3

为了删除第一行和最后一行,请使用切片:

替换这一行:

for line in content:

有了这个:

for line in content[1:-1]:  # after the first and before the last line

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java for循环第一个字符串的第一个字符,然后第二个字符串的最后一个字符

来自分类Dev

与第一个一起存储第二个字符串

来自分类Dev

在C ++中使用sort排序从第二个字符到最后一个字符的字符串

来自分类Dev

快速将第二个字符串复制到第一个字符串时,如何使用“ 0”填充第一个字符串的剩余空间?

来自分类Dev

将第一个字符串复制到第二行

来自分类Dev

检查第二个字符串php中的第一个字符串的字符时输出不一致

来自分类Dev

为什么第二个字符串保存在第一个字符串中?

来自分类Dev

从第二个字符串中删除出现在第一个字符串中的字符

来自分类Dev

如何比较一个字符串输入是否为第二个字符串输入的前缀?

来自分类Dev

在MySQL中替换字符串中的第一个字符

来自分类Dev

如何使用python替换字符串中的第一个字符?

来自分类Dev

用一个字符串替换第二个和第三个字符串

来自分类Dev

如果第二个字符串中存在第一个字符串中的字母,则无法比较2个字符串-Java

来自分类Dev

如何在Java中获取第二个单词的第一个字符

来自分类Dev

在C ++中使用sort排序从第二个字符到最后一个字符的字符串

来自分类Dev

检查第二个字符串php中的第一个字符串的字符时输出不一致

来自分类Dev

如何使用第一个字符串替换第二个字符串

来自分类Dev

如何将两个字符串之间的行复制到一个新的文本文件中,该文件完全匹配第一个字符串,部分匹配第二个字符串

来自分类Dev

java for循环第一个字符串的第一个字符,然后第二个字符串的最后一个字符

来自分类Dev

使用递归获取第一个字符串中第二个字符串的第一次出现的索引

来自分类Dev

两个数组,根据第一个的重复值将第二个数组分组,并形成一个字符串

来自分类Dev

编写一个静态方法,该方法接受两个字符串并返回一个布尔值,说明第一个字符串是否在第二个字符串中作为子字符串出现

来自分类Dev

确定第一个字符串是否以第二个字符串开头

来自分类Dev

从第二个字符串中删除出现在第一个字符串中的字符

来自分类Dev

c# - 通过冒号拆分文本框中的字符串并获取第一个字符串和第二个字符串

来自分类Dev

如果第一个字符为 0,则替换字符串的第一个字符

来自分类Dev

从文件读取后,第二个字符数组覆盖第一个字符数组

来自分类Dev

如何在多种条件下从字符串中获取第一个和第二个字符

来自分类Dev

决定将哪个字符串转到similar_text 中的第一个/第二个参数

Related 相关文章

  1. 1

    java for循环第一个字符串的第一个字符,然后第二个字符串的最后一个字符

  2. 2

    与第一个一起存储第二个字符串

  3. 3

    在C ++中使用sort排序从第二个字符到最后一个字符的字符串

  4. 4

    快速将第二个字符串复制到第一个字符串时,如何使用“ 0”填充第一个字符串的剩余空间?

  5. 5

    将第一个字符串复制到第二行

  6. 6

    检查第二个字符串php中的第一个字符串的字符时输出不一致

  7. 7

    为什么第二个字符串保存在第一个字符串中?

  8. 8

    从第二个字符串中删除出现在第一个字符串中的字符

  9. 9

    如何比较一个字符串输入是否为第二个字符串输入的前缀?

  10. 10

    在MySQL中替换字符串中的第一个字符

  11. 11

    如何使用python替换字符串中的第一个字符?

  12. 12

    用一个字符串替换第二个和第三个字符串

  13. 13

    如果第二个字符串中存在第一个字符串中的字母,则无法比较2个字符串-Java

  14. 14

    如何在Java中获取第二个单词的第一个字符

  15. 15

    在C ++中使用sort排序从第二个字符到最后一个字符的字符串

  16. 16

    检查第二个字符串php中的第一个字符串的字符时输出不一致

  17. 17

    如何使用第一个字符串替换第二个字符串

  18. 18

    如何将两个字符串之间的行复制到一个新的文本文件中,该文件完全匹配第一个字符串,部分匹配第二个字符串

  19. 19

    java for循环第一个字符串的第一个字符,然后第二个字符串的最后一个字符

  20. 20

    使用递归获取第一个字符串中第二个字符串的第一次出现的索引

  21. 21

    两个数组,根据第一个的重复值将第二个数组分组,并形成一个字符串

  22. 22

    编写一个静态方法,该方法接受两个字符串并返回一个布尔值,说明第一个字符串是否在第二个字符串中作为子字符串出现

  23. 23

    确定第一个字符串是否以第二个字符串开头

  24. 24

    从第二个字符串中删除出现在第一个字符串中的字符

  25. 25

    c# - 通过冒号拆分文本框中的字符串并获取第一个字符串和第二个字符串

  26. 26

    如果第一个字符为 0,则替换字符串的第一个字符

  27. 27

    从文件读取后,第二个字符数组覆盖第一个字符数组

  28. 28

    如何在多种条件下从字符串中获取第一个和第二个字符

  29. 29

    决定将哪个字符串转到similar_text 中的第一个/第二个参数

热门标签

归档