将A文件中部分内容替换成B文件的对应内容
本帖最后由 WarmInWinter 于 2022-6-10 16:55 编辑A.txt 内容
Team(A) {
row:6
column: 5
row_list {
A
B
C
D
E
}
column_list {
zhaoda
zhangsan
lisi
wangwu
xiaoliu
}
}
Team(B) {
row:6
column: 5
row_list {
F
G
H
I
J
}
column_list {
liu
sun
chen
xue
xiao
}
}
B.txt 内容
Team(A) {
row:6
column: 5
row_list {
1
2
3
4
5
}
column_list {
ALLEN
JIM
TONY
Henry
JAMES
}
}
Team(B) {
row:6
column: 5
row_list {
6
7
8
9
10
}
column_list {
Timmy
Moossy
Hank
Mark
Lee
}
}
想将A文件中的column_list内容替换成B文件的column_list:
如下效果:
Team(A) {
row:6
column: 5
row_list {
A
B
C
D
E
}
column_list {
ALLEN
JIM
TONY
Henry
JAMES
}
}
Team (B) {
row:6
column: 5
row_list {
F
G
H
I
J
}
column_list {
Timmy
Moossy
Hank
Mark
Lee
}
}
class不是C语言的代码吗
这个问题是不发错了 新源 发表于 2022-6-10 16:03
class不是C语言的代码吗
这个问题是不发错了
造成误导啦,就是没有含义的字符。我换一个 正则匹配不行吗? tiangtian 发表于 2022-6-10 18:27
正则匹配不行吗?
请问多行也可以正则匹配?
就是两个文件中column_list数目相同,但是column_list元素是多行的 本帖最后由 临时号 于 2022-6-11 00:47 编辑
WarmInWinter 发表于 2022-6-10 22:12
请问多行也可以正则匹配?
就是两个文件中column_list数目相同,但是column_list元素是多行的
你读取文件以后,文件内容对python来说就是字符串,那你可以用字符串查找的方法,先找A.txt的column_list,然后以查找出来的索引作为字符串你的开头索引,再找离开头最近的},用相同的方式找出B.txt的column的索引和离它最近的}的索引,用字符串的替换函数替换掉
当然,这个方法比较复杂
# A.txt
f = open('A.txt','r')
a = f.read()
begin = a.find("column_list")
end = a.find("}",begin)
a_text1 = a
begin = a.find("column_list",begin+1)
end = a.find("}",begin)
a_text2 = a
f.close()
# B.txt
f = open("B.txt",'r')
b = f.read()
begin = b.find("column_list")
end = b.find("}",begin)
b_text1 = b
begin = b.find("column_list",begin+1)
end = b.find("}",begin)
b_text2 = b
f.close()
# 替换
a = a.replace(a_text1,b_text1)
a = a.replace(a_text2,b_text2)
f = open('A.txt','w')
f.write(a)
f.close() 新源 发表于 2022-6-10 16:03
class不是C语言的代码吗
这个问题是不发错了
嗯嗯,这个格式转不过来,不好检查 WarmInWinter 发表于 2022-6-10 22:12
请问多行也可以正则匹配?
就是两个文件中column_list数目相同,但是column_list元素是多行的
正则公式:column_list[\s\S]+?}
这样可以匹配一个column_list吧,大概是这么写的。匹配column_list至后面第一个“}"之间的内容
页:
[1]