Replace one part text element in a for loop Python

Viewed 809

My goal is to change a word in a sentence and write into a text file.

I created a text file:

filename = "/Users/Adam/Desktop/data.txt"
text = open(filename, 'r')
lines = text.readlines()

I have got this example sentence : "I have got a RED cat"

I want to change the "RED", the colour name, and write (append) every sentence to my data.txt.

colours={red, blue, yellow, green, etc..}

How can I take it into a loop, replace only this part and write every senctence to my txt file?

EDITED - Sanket request:

For example i start my text here, what is a paragraph so i want this tabulator or space before it in the .txt file too....... asfgas sagsaasgsagasgsagsaaggaggggg

And i continue my senctence when i arrive at "I have got a RED cat"

And after that my text is continuing.

EDIT2:

#!/usr/bin/python
#!/bin/sh
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from selenium import webdriver
import urllib2
import subprocess
import unicodecsv as csv
import os
import sys
import io

array = ["https://www.flightradar24.com/data/airports/gdn/departures", "https://www.flightradar24.com/data/airports/ktw/departures", "https://www.flightradar24.com/data/airports/krk/departures", "https://www.flightradar24.com/data/airports/wmi/departures", "https://www.flightradar24.com/data/airports/poz/departures", "https://www.flightradar24.com/data/airports/waw/departures", "https://www.flightradar24.com/data/airports/wro/departures", "https://www.flightradar24.com/data/airports/otp/departures", "https://www.flightradar24.com/data/airports/clj/departures", "https://www.flightradar24.com/data/airports/tsr/departures", "https://www.flightradar24.com/data/airports/bts/departures", "https://www.flightradar24.com/data/airports/lju/departures", "https://www.flightradar24.com/data/airports/alc/departures", "https://www.flightradar24.com/data/airports/bcn/departures", "https://www.flightradar24.com/data/airports/bio/departures", "https://www.flightradar24.com/data/airports/fue/departures", "https://www.flightradar24.com/data/airports/gro/departures", "https://www.flightradar24.com/data/airports/grx/departures", "https://www.flightradar24.com/data/airports/ibz/departures", "https://www.flightradar24.com/data/airports/xry/departures", "https://www.flightradar24.com/data/airports/ace/departures", "https://www.flightradar24.com/data/airports/mad/departures", "https://www.flightradar24.com/data/airports/agp/departures", "https://www.flightradar24.com/data/airports/pmi/departures", "https://www.flightradar24.com/data/airports/mah/departures", "https://www.flightradar24.com/data/airports/mjv/departures", "https://www.flightradar24.com/data/airports/reu/departures", "https://www.flightradar24.com/data/airports/sdr/departures", "https://www.flightradar24.com/data/airports/scq/departures", "https://www.flightradar24.com/data/airports/svq/departures", "https://www.flightradar24.com/data/airports/tfs/departures", "https://www.flightradar24.com/data/airports/tfn/departures", "https://www.flightradar24.com/data/airports/vlc/departures", "https://www.flightradar24.com/data/airports/zaz/departures", "https://www.flightradar24.com/data/airports/abz/departures", "https://www.flightradar24.com/data/airports/bfs/departures", "https://www.flightradar24.com/data/airports/bhd/departures", "https://www.flightradar24.com/data/airports/bhx/departures", "https://www.flightradar24.com/data/airports/brs/departures", "https://www.flightradar24.com/data/airports/cwl/departures", "https://www.flightradar24.com/data/airports/ema/departures", "https://www.flightradar24.com/data/airports/edi/departures", "https://www.flightradar24.com/data/airports/gla/departures", "https://www.flightradar24.com/data/airports/pik/departures", "https://www.flightradar24.com/data/airports/huy/departures", "https://www.flightradar24.com/data/airports/jer/departures", "https://www.flightradar24.com/data/airports/lba/departures", "https://www.flightradar24.com/data/airports/lpl/departures", "https://www.flightradar24.com/data/airports/ltn/departures", "https://www.flightradar24.com/data/airports/lhr/departures", "https://www.flightradar24.com/data/airports/lcy/departures", "https://www.flightradar24.com/data/airports/bqh/departures", "https://www.flightradar24.com/data/airports/stn/departures", "https://www.flightradar24.com/data/airports/lgw/departures", "https://www.flightradar24.com/data/airports/man/departures", "https://www.flightradar24.com/data/airports/sou/departures", "https://www.flightradar24.com/data/airports/ncl/departures", "https://www.flightradar24.com/data/airports/vie/departures", "https://www.flightradar24.com/data/airports/brq/departures", "https://www.flightradar24.com/data/airports/prg/departures", "https://www.flightradar24.com/data/airports/bud/departures", "https://www.flightradar24.com/data/airports/deb/departures", "https://www.flightradar24.com/data/airports/boj/departures", "https://www.flightradar24.com/data/airports/sof/departures", "https://www.flightradar24.com/data/airports/var/departures", "https://www.flightradar24.com/data/airports/ork/departures", "https://www.flightradar24.com/data/airports/dub/departures", "https://www.flightradar24.com/data/airports/noc/departures", "https://www.flightradar24.com/data/airports/kir/departures", "https://www.flightradar24.com/data/airports/snn/departures", "https://www.flightradar24.com/data/airports/mla/departures"]

string = ("browser = webdriver.Firefox()
datatable=[]
   browser.get('%s')  WebDriverWait(browser, 5).until(lambda s: s.execute_script("return jQuery.active==0"))
browser.find_element_by_xpath('//button[contains(text(), "Load earlier flights")]').click()
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
 \n")

file="/Users/Adam/Desktop/data.txt"

with open(file, "w") as f:
    for i in array:
        f.write(string % i)

f.close()
3 Answers

So we can do something like the below:

array = ["red", "blue", "yellow", "green"]

string = ("I have got a %s cat.\n")

file="file.txt"

with open(file, "w") as f:
    for i in array:
        f.write(string % i)

To answer your above question in the comments. Yes, this will still work if you have multiple paragraphs:

array = ["red", "blue", "yellow", "green"]

string = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at hendrerit enim, ut sodales arcu. Donec vel purus vel orci consequat ultrices et vitae metus. Donec auctor, elit placerat porttitor accumsan, diam massa faucibus justo, eu egestas eros leo a nibh. Aliquam erat volutpat. Curabitur elementum at ante quis auctor. Pellentesque egestas massa id dolor bibendum, a aliquet dui fermentum. In hac habitasse platea dictumst. Nunc luctus mollis ligula, vel condimentum enim semper ac.\n\nI have got a %s cat.\n\nIn risus velit, gravida ac nisl a, rutrum pulvinar mi. In et enim vel ex vehicula ultrices. Donec facilisis pellentesque ultricies. Cras ultrices nec ipsum tincidunt cursus. Integer et libero rhoncus, malesuada orci a, pellentesque mi. Quisque vitae fringilla sapien. Proin sit amet erat erat. Vivamus id condimentum ligula. Donec lobortis tincidunt egestas. In convallis rutrum laoreet.\n\nSed ligula sem, mollis ac varius ac, laoreet et arcu. Integer id enim sollicitudin, eleifend nisi vitae, sagittis massa. Etiam eleifend rhoncus varius. Vestibulum condimentum nibh arcu, nec egestas dolor convallis eu. Sed gravida metus elit, vitae dictum augue vestibulum at. Aenean facilisis ipsum vel tincidunt facilisis. In interdum vitae mauris at malesuada.\n\n\n")

file="file.txt"

with open(file, "w") as f:
    for i in array:
        f.write(string % i)

On a side note, believe it or not we can condense the whole thing down to one line:

open("file.txt", "w").write("\n".join("I have got a %s cat." % i for i in ["red", "blue", "yellow", "green"])+"\n")

Python is wonderful sometimes.

filename = "/data.txt"
text = open(filename, 'w')
colours=['red', 'blue', 'yellow', 'green']
for c in colours:
    line = "I have got a %s cat\n" % c
    text.write(line)
text.close()

Append the following code to your script

text.close()
text = open(filename, 'a')
line = "I have got a %s cat\n"
colours= ['red', 'blue', 'yellow', 'green']
for colour in colours:
    text.write(line %color)

text.close()

P.S. Never forget to close your file handles

Related