1

I'm working on a python script that asks what word you want to find. It searches for that word in (for example) word.txt file and prints it, including the line + line number. Since my word.txt file contains paragraphs, the "line" is misinterpreted. Grammatically, a line means "Starting with" capital letter "and ending with". "Or the like. But in my script, a sentence (line) ends at the end of the aliena.

I have been googling for " variable containing string that begins with "uppercase" and ending with "." and more without a result.

Down here is my code and below that, the file (a news article) I am using.

fh =open("name.txt","r")
word=input("Enter the word to search:")
s=". "
count=1
while(s): 
   s=fh.readline()
   L=s.split()
   if word in L:
       print("Line Number:",count,":",s)

       count+=1

(name.txt)

Het gaat "heel moeilijk" worden om de verspreiding van de nieuwe variant van het coronavirus tegen te gaan, zei de Britse minister van Volksgezondheid Matt Hancock zondagochtend. "We hebben nog een lange weg te gaan." De gemuteerde versie van het virus is waarschijnlijk een stuk besmettelijker dan eerdere varianten.

Inwoners van Londen en andere gebieden waar vanwege de nieuwe variant strengere lockdowns zijn afgekondigd, moeten zich gedragen alsof ze besmet zijn, zegt Hancock. Dat betekent dat ze moeten thuisblijven, tenzij het echt niet anders kan.

21 miljoen inwoners van Londen en een deel van het oosten en zuidoosten van Engeland mogen elkaar niet meer bezoeken. Voor Kerstmis worden geen uitzonderingen gemaakt.

Niet-essentiële winkels zijn dicht en mensen moeten zoveel mogelijk thuisblijven. Voor werk, studie, buitensport of begrafenissen met maximaal dertig aanwezigen mogen inwoners wel de deur uit.
Mutatie op 9 december goed voor 62 procent van nieuwe gevallen

De nieuwe variant van het coronavirus heeft zich al volop verspreid in Londen en het oosten van Engeland. Het Britse statistiekbureau ONS heeft berekend dat deze mutatie op 9 december al goed was voor 62 procent van alle nieuwe coronabesmettingen in de Britse hoofdstad. In Oost-Engeland werd op die datum in 59 procent van de gevallen het gemuteerde coronavirus vastgesteld.

Uit de cijfers blijkt hoe snel de gemuteerde versie van het virus om zich heen grijpt. Op 18 november maakte deze variant, die in september in Engeland opdook, nog slechts 28 procent van de geconstateerde gevallen in Londen uit.

Het vaccineren van de bevolking is volgens de Britse minister nu des te belangrijker. Het Verenigd Koninkrijk verwacht dat aan het einde van dit weekend ongeveer een half miljoen mensen zijn gevaccineerd.
Nieuwe variant verspreidt zich mogelijk sneller

De ontdekking van de nieuwe stam in Nederland is in de nacht van zaterdag op zondag bekendgemaakt. Op basis van een eerste analyse constateerde een speciale adviesgroep dat deze variant zich mogelijk sneller verspreidt dan eerdere varianten.

Virussen muteren voortdurend. Ze overleven door zich aan te passen aan een andere omgeving. De meeste mutaties van het coronavirus zijn ongevaarlijk.

De nieuwe stam, een variant van SARS-CoV-2 met de wetenschappelijke naam VUI-202012/01, is in september ontdekt. De mutatie is vooral aangetroffen in het zuidoosten van Engeland, maar is ook in Wales vastgesteld. Verder zijn drie gevallen in Denemarken en een in Australië bekend.
Geen duidelijke signalen dat nieuwe veriant gevaarlijker is

"De nieuwe variant is mogelijk 70 procent besmettelijker dan de originele variant van het virus", zei de Britse premier Boris Johnson zaterdag tijdens een persconferentie. Nader onderzoek moet meer duidelijkheid verschaffen.

Er zijn geen duidelijke signalen dat de nieuwe variant ook gevaarlijker is. De kans op een ziekenhuisopname of overlijden is te vergelijken met de kans daarop bij de oorspronkelijke variant van het virus. Ook wijst niets erop dat coronavaccins minder effectief werken tegen de nieuwe variant van het virus.
ppwater
  • 2,315
  • 4
  • 15
  • 29
  • 2
    please check out https://stackoverflow.com/questions/43753581/python-regex-to-match-punctuation-at-end-of-string that uses regular expressions regex. – Ruperto Dec 20 '20 at 13:37
  • I don't understand what is your final question? What does paragraphs have to interfere with line numbers? Line numbers are according to the file – Tomerikoo Dec 20 '20 at 13:56
  • Proper nouns are capitalised too, so your definition of a line doesn't make work... your question confuses 'sentence' and 'line' ... you print "Line number:" but want 'Sentence Number'? What is your expected output for the above code for the input 'wetenschappelijke ' ? – JeffUK Dec 20 '20 at 14:17
  • Enter the word to search:wetenschappelijke Line Number: 1 : De nieuwe stam, een variant van SARS-CoV-2 met de wetenschappelijke naam VUI-202012/01, is in september ontdekt. De mutatie is vooral aangetroffen in het zuidoosten van Engeland, maar is ook in Wales vastgesteld. Verder zijn drie gevallen in Denemarken en een in Australië bekend. – FeddrikScheper Dec 20 '20 at 15:36
  • This is how the output looks now .. above.. and the next is how i would like it to be for the end of the day.. – FeddrikScheper Dec 20 '20 at 15:38
  • Enter the word to search:wetenschappelijke Line Number: 1 : De nieuwe stam, een variant van SARS-CoV-2 met de wetenschappelijke naam VUI-202012/01, is in september ontdekt. – FeddrikScheper Dec 20 '20 at 15:39
  • This script should be considered as work in progress. It would be nice to add some other functions later on, perhaps even a GUI, but this is it for now. – FeddrikScheper Dec 20 '20 at 15:41

1 Answers1

0

This should work.

filename = "name.txt"
word = input("Enter the word to search:")

with open(filename, "r") as f:
    for i, line in enumerate(f):
        new_word = " " + word.lower() + " " # lowercase word with leading and trailing spaces
        new_line = " " + line.rstrip("\n").replace(".", "").lower() + " "  # lowercase line with leading and trailing spaces, without dot
        if new_word in new_line:
            print("Line Number:", i, ":", line)
rada-dev
  • 122
  • 5