我有一个csv文件(script.csv),该文件用作替换多个文件中字符串的脚本。 asease文件是图形文件。每个文件的图形数量在csv文件中指定。 对于第一个文件,图形数量为1。对于第二个文件-3个图,对于第三个文件-2个图,对于第四个文件-4个图,对于第五个文件-1个图,....同样。
csv(script.csv)中的数据
df_exp(229.0776,246.1691,...)
假设x4.txt是四个图形文件。然后我使用正则表达式搜索要替换的字符串的位置。然后我找到了五个要替换的地方,但是我只需要替换四个地方。 例如 : 如果re.search(r'/ et y',字符串): 打印(字符串)
df_sim(229.1183, 246.1448,...)
包含要替换的字符串的输入文件:
Number of Graphs 1 3 2 4 1
--- -- -- -- -- --
y_title y1 y1 y1 y1 y1
y2 y2 y2
y3 y3
y4
我希望输出为
df=pd.read_csv("script.csv")
class Update:
ytCount=0
def file_read(self):
f1 = open(inpFile, 'r')
f2 = open(outFile, 'w')
for line in f1.readlines():
string=line
if re.search(r'/et y', string):
self.y_axis_title(string,f2)
else:
f2.write(string)
def y_axis_title(self,string,f2):
if nGraphs==1:
self.ytCount=0
if self.ytCount == 0:
word = self.y_change_title(string, ''.join(y_title))
f2.write(word)
else:
for i in range(self.ytCount,nGraphs):
if self.ytCount==i:
word=self.y_change_title(string,y_title[i])
f2.write(word)
if self.ytCount==nGraphs-1:
self.ytCount=0
else:
self.ytCount+=1
def y_change_title(self,string,ytitle):
strplt=string.split()
word = strplt[0] + " " + strplt[1] + " " + strplt[2][0] + ytitle + " "+strplt[2][0] + "\t" + ' '.join(strplt[4:6]) + "\n"
return word
obj=Update()
colCount=((df.count(axis=1)[0])-1)
for i in range(colCount):
nGraphs=int(df.columns[2:][i][0])
inpFile=df[df.columns[2:][i]][0]
outFile=df[df.columns[2:][i]][0]+"_out"
if nGraphs == 1:
y_title = list(df[df.columns[2:][i]][5]) // y_tiltle in 5th row
elif nGraphs==2:
y_title=list(df[df.columns[2:][i]][6:8]) // y_tiltle in 6 to 7 row
elif nGraphs==3:
y_title = list(df[df.columns[2:][i]][7:10]) // y_tiltle in 7 to 9 row
elif nGraphs == 4:
y_title = list(df[df.columns[2:][i]][8:12]) // y_tiltle in 8 to 11 row
obj.file_read()
但是我真正得到的是:
/et y "HHJKLJ" ;axis title
/et y "SDFSDF" ;axis title
/et y "STSTS" ;axis title
/et y "uiuhig" ;axis title
/et y "fgfjhgjhg" ;axis title
该如何解决?