简体   繁体   English

替换for循环Python中的一个部分文本元素

[英]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. 我想更改“RED”,颜色名称,并将每个句子写入(追加)到我的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? 如何将其置于循环中,仅替换此部分并将每个句子写入我的txt文件?

EDITED - Sanket request: 已编辑 - Sanket请求:

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 例如,我在这里开始我的文字,什么是段落,所以我想在.txt文件中的这个制表符或空格....... 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: 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()

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. Python有时很精彩。

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

PS Never forget to close your file handles PS永远不要忘记关闭文件句柄

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM