#-*- coding: utf-8 -*- import csv, time, subprocess, re, pywikibot WAIT_TIME = 60 with open('00000.csv', 'r') as csvfile: reader = csv.reader(csvfile,delimiter="~") # count = 0 for row in reader: # subprocess.call("sed -i 1d 00000.csv",shell=True) wikiPage = row[0]#.decode('utf-8') print (wikiPage) site1 = pywikibot.Site('ta', 'wikisource') page = pywikibot.Page(site1, wikiPage) existingText = page.text # with open ('000-existingTextCSV.txt', 'w') as CSVfile: # CSVwriter = CSVfile.write(existingText+'\n') # print(type (existingText)) # print('\n\n' + existingText) search_pattern = re.compile("\.*?\<\/noinclude>", re.DOTALL) tags = re.findall(search_pattern, existingText) headerTag1 = tags[0] footerTag = tags[1] middleText = re.sub(search_pattern, '', existingText).strip() if '' in middleText: print('\n\n already exists\n\n') if not '' in middleText: middleTextChangedBegin = middleText.replace('(',':(').replace(')',')') middleTextChangedEnd = existingText.replace(middleText, middleTextChangedBegin) with open ('000-existingTextCSV.txt', 'w') as CSVfile: CSVwriter = CSVfile.write(middleTextChangedEnd + '\n') if '{{float_right|' in middleText: print('\n\n{{float_right| already exists\n\n') if not '{{float_right|' in middleText: pattern1 = re.findall(r"\d{2,6}", middleText) # print (pattern1) # print(type (pattern1)) for x in range(len(pattern1)): floatAllnumbers2 = pattern1[x] + '~' + '{{float_right|' + pattern1[x] + '}}' # print (floatAllnumbers2) with open ('000-temp-float-right.csv', 'a') as CSVfile: CSVwriter = CSVfile.write(floatAllnumbers2+'\n') #reading the floatRight number with its replace template with open('000-temp-float-right.csv', 'r') as csvfile: reader = csv.reader(csvfile,delimiter="~") for row in reader: subprocess.call("sed -i 1d 000-temp-float-right.csv",shell=True) findNum = row[0] replaceNum = row[1] #+ '\n' # print (findNum + '~' + replaceNum) with open('000-existingTextCSV.txt', 'r') as txtFile: filedata = txtFile.read() # Replace the target string with a condition if not replaceNum in filedata: filedata = filedata.replace(findNum,replaceNum) # Write the file out again with open('000-existingTextCSV.txt', 'w') as txtFile: txtFile.write(filedata) # print (filedata) with open('000-existingTextCSV.txt','r') as txtFile: existingFiledata = txtFile.read() # print(existingFiledata) page.text = existingFiledata saveSummary = '+ {{float_right, :' #+ changedHeaderTagClose page.save(summary=saveSummary) time.sleep(WAIT_TIME)