2017-09-29 222 views
5

Moim celem jest zmiana słowa w zdaniu i zapisanie w pliku tekstowym.Zamień jeden element tekstowy części w pętlę for Python

stworzyłem plik tekstowy:

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

Mam ten przykład zdanie: „Mam czerwonym Kot”

chcę zmienić „czerwony”, nazwy kolorów, a napisz (dołącz) każde zdanie do mojego pliku data.txt.

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

Jak mogę wziąć to w pętlę, wymienić tylko tę część i napisać każdą sensencję do mojego pliku TXT?

EDYCJI - Sanket prośba:

Na przykład zacznę tekst tutaj, co jest tak akapit chcę tego tabulatora lub przestrzeń przed nim w pliku .txt zbyt ....... asfgas sagsaasgsagasgsagsaaggaggggg

i nadal moje senctence po przyjeździe w "mam czerwonym kot"

a potem mój tekst jest kontynuacją.

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() 
+0

Edytuj pytanie, wpisując swój kod, który próbowałeś do tej pory ... @Harley – Sanket

+0

To jest trochę pedantyczne, ale to wcale nie jest Python. Czy masz na myśli kolory w stylu 'colors = ['red', 'blue', 'yellow', 'green']'? Czy też są zdefiniowane nazwy "czerwony", "niebieski" itp.? –

Odpowiedz

4

więc możemy zrobić coś jak poniżej:

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) 

Aby odpowiedzieć na powyższe pytanie w komentarzach. Tak, to będzie nadal działać, jeśli masz kilka akapitów:

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) 

Na marginesie, to wierzyć lub nie możemy skroplić całość w dół do jednej linii:

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

Pythona czasami jest cudownie.

+0

@Harley Tak, jeśli użyjesz wielu akapitów to zadziała –

+0

Po prostu muszę umieścić \ n przed moimi zdaniami i działa? – Harley

+0

@Harley '\ n' jest znakiem zwrotnym, jest dodawany do dowolnego dokumentu tekstowego po naciśnięciu klawisza Enter. Gdziekolwiek więc normalnie wciskasz Enter, dodaj '\ n'. –

2
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() 
+0

Nie widzę potrzeby "w +" tutaj. Prawdopodobnie pomogłoby to, gdybyś wspomniał również 'with' lub' .close'. –

+0

Tak, to nie jest potrzebne, dzięki – Sanket

+0

A jeśli mam więcej sensu? Z akapitem i kilkoma liniami. To też działa? Tak więc chcę powiedzieć, że mam na przykład 2-3 paragrafy przed tym senctence, a po tym senctence jest więcej 2-3 paragrafu. Mój format pozostaje w poprawnej formie? – Harley

2

Dopisz następujący kod do skryptu

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() 

PS: Nigdy nie zapomnij zamknąć uchwytów plików

+0

Nie ma potrzeby tworzenia listy tutaj, możesz po prostu napisać każdą linię podczas jej generowania. –

+0

Tak, zdałem sobie z tego sprawę i zaktualizowałem. Dziękuję Ci :) – Anuj

Powiązane problemy