Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace one part text element in a for loop Python

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()
like image 912
Harley Avatar asked Sep 29 '17 09:09

Harley


People also ask

How do you replace a word in a for loop in Python?

Replace a character in a string using for loop in python We can replace a character in a string with another character in python by using the replace() function or sub() function or a for loop.

Can you modify for loops?

You can modify the loop variable in a for loop, the problem is that for loops in Python are not like "old-style" for loops in e.g. Java, but more like "new-style" for-each loops. In Python, for i in range(0, 10): does not behave like for (int i = 0; i < 10; i++) { , but like for (int i : new int[] {0, 1, ..., 10}} .

How do you terminate a loop in Python?

Python provides two keywords that terminate a loop iteration prematurely: The Python break statement immediately terminates a loop entirely. Program execution proceeds to the first statement following the loop body. The Python continue statement immediately terminates the current loop iteration.


2 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.

like image 173
Ethan Field Avatar answered Sep 30 '22 01:09

Ethan Field


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()
like image 28
Sanket Avatar answered Sep 30 '22 02:09

Sanket