2017-09-29 85 views
5

我的目標是更改句子中的單詞並寫入文本文件。替換for循環中的一個部分文本元素Python

我創建一個文本文件:

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

我有這個例子中的一句話:「我有一個紅色的貓」

我想改變「紅」,顏色名稱,寫(追加)每個句子到我的data.txt。

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

我怎樣才能把它變成一個循環,只替換這部分,並將每個句子寫入我的txt文件?

編輯 - SANKET要求:

例如,我從這裏開始我的文字,什麼是一個段落,所以我想在.txt文件這個製表或空間之前,它太....... asfgas sagsaasgsagasgsagsaaggaggggg

而我繼續我的senctence當我在「我有一個紅色的貓」

在那之後我的文字繼續到達。

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

用你迄今試過的代碼編輯問題...... @Harley – Sanket

+0

這有點迂腐,但這根本不是Python。你是說顏色應該像'顏色= ['紅','藍','黃','綠']'?或者是「紅色」,「藍色」等定義的名稱? –

回答

4

因此,我們可以這樣做以下:

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) 

要回答你上面的問題的意見。是的,這將仍然工作,如果你有多個段落:

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) 

在一個側面說明,無論你相信與否,我們可以下凝聚了整個事情到一個行:

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

的Python有時候是很棒的。

+0

@哈利是的,如果你使用多個段落,它將工作 –

+0

所以我只需要把\在我的句子之前,它正在工作嗎? – Harley

+0

@Harley'\ n'是返回字符,當您按Enter鍵時,它會添加到任何純文本文檔中。所以無論你通常按Enter鍵,添加'\ 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

我在這裏看不到需要'w +'。如果你提到''''或'.close',它可能會有所幫助。 –

+0

是不需要,謝謝 – Sanket

+0

如果我有更多的句子,那麼呢?用一段和幾行。它也在工作?所以我想說我在這個句子之前已經得到了2-3段,在這個句子之後還有2-3段。我的格式保持正確的格式? – Harley

2

以下代碼附加到腳本

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

附:永遠不要忘記關閉你的文件句柄

+0

這裏沒有必要建立一個列表,你可以在生成它的時候寫出每一行。 –

+0

是的,我意識到並更新了它。謝謝 :) – Anuj

相關問題