Python : Updating multiple words in a text file based on text in another text file using in_place module










0















I have a text file say storyfile.txt

Content in storyfile.txt is as




'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe






I have another file- hashfile.txt that contains some words separated by comma(,)


Content of hashfile.txt is:




All,mimsy,were,the,borogoves,raths,outgrabe







My objective



My objective is to

1. Read hashfile.txt


2. Insert Hashtag on each of the comma separated word


3. Read storyfile.txt . Search for same words as in hashtag.txt and add hashtag on these words.


4. Update storyfile.txt with words that are hash-tagged



My Python code so far



import in_place

hashfile = open('hashfile.txt', 'w+')
n1 = hashfile.read().rstrip('n')
print(n1)

checkWords = n1.split(',')
print(checkWords)

repWords = ["#"+i for i in checkWords]
print(repWords)
hashfile.close()

with in_place.InPlace('storyfile.txt') as file:
for line in file:
for check, rep in zip(checkWords, repWords):
line = line.replace(check, rep)
file.write(line)


The output



can be seen here
https://dpaste.de/Yp35



Why is this kind of output is coming?
Why the last sentence has no newlines in it?
Where I am wrong?

The output


attached image



The current working code for single text



import in_place

with in_place.InPlace('somefile.txt') as file:
for line in file:
line = line.replace('mome', 'testZ')
file.write(line)









share|improve this question
























  • What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

    – jwodder
    Nov 12 '18 at 17:14











  • yes, it is true.I have edited it. But still result is not what was expected

    – Rahul Pandey
    Nov 13 '18 at 5:47











  • following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

    – Rahul Pandey
    Nov 13 '18 at 17:15
















0















I have a text file say storyfile.txt

Content in storyfile.txt is as




'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe






I have another file- hashfile.txt that contains some words separated by comma(,)


Content of hashfile.txt is:




All,mimsy,were,the,borogoves,raths,outgrabe







My objective



My objective is to

1. Read hashfile.txt


2. Insert Hashtag on each of the comma separated word


3. Read storyfile.txt . Search for same words as in hashtag.txt and add hashtag on these words.


4. Update storyfile.txt with words that are hash-tagged



My Python code so far



import in_place

hashfile = open('hashfile.txt', 'w+')
n1 = hashfile.read().rstrip('n')
print(n1)

checkWords = n1.split(',')
print(checkWords)

repWords = ["#"+i for i in checkWords]
print(repWords)
hashfile.close()

with in_place.InPlace('storyfile.txt') as file:
for line in file:
for check, rep in zip(checkWords, repWords):
line = line.replace(check, rep)
file.write(line)


The output



can be seen here
https://dpaste.de/Yp35



Why is this kind of output is coming?
Why the last sentence has no newlines in it?
Where I am wrong?

The output


attached image



The current working code for single text



import in_place

with in_place.InPlace('somefile.txt') as file:
for line in file:
line = line.replace('mome', 'testZ')
file.write(line)









share|improve this question
























  • What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

    – jwodder
    Nov 12 '18 at 17:14











  • yes, it is true.I have edited it. But still result is not what was expected

    – Rahul Pandey
    Nov 13 '18 at 5:47











  • following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

    – Rahul Pandey
    Nov 13 '18 at 17:15














0












0








0








I have a text file say storyfile.txt

Content in storyfile.txt is as




'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe






I have another file- hashfile.txt that contains some words separated by comma(,)


Content of hashfile.txt is:




All,mimsy,were,the,borogoves,raths,outgrabe







My objective



My objective is to

1. Read hashfile.txt


2. Insert Hashtag on each of the comma separated word


3. Read storyfile.txt . Search for same words as in hashtag.txt and add hashtag on these words.


4. Update storyfile.txt with words that are hash-tagged



My Python code so far



import in_place

hashfile = open('hashfile.txt', 'w+')
n1 = hashfile.read().rstrip('n')
print(n1)

checkWords = n1.split(',')
print(checkWords)

repWords = ["#"+i for i in checkWords]
print(repWords)
hashfile.close()

with in_place.InPlace('storyfile.txt') as file:
for line in file:
for check, rep in zip(checkWords, repWords):
line = line.replace(check, rep)
file.write(line)


The output



can be seen here
https://dpaste.de/Yp35



Why is this kind of output is coming?
Why the last sentence has no newlines in it?
Where I am wrong?

The output


attached image



The current working code for single text



import in_place

with in_place.InPlace('somefile.txt') as file:
for line in file:
line = line.replace('mome', 'testZ')
file.write(line)









share|improve this question
















I have a text file say storyfile.txt

Content in storyfile.txt is as




'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe






I have another file- hashfile.txt that contains some words separated by comma(,)


Content of hashfile.txt is:




All,mimsy,were,the,borogoves,raths,outgrabe







My objective



My objective is to

1. Read hashfile.txt


2. Insert Hashtag on each of the comma separated word


3. Read storyfile.txt . Search for same words as in hashtag.txt and add hashtag on these words.


4. Update storyfile.txt with words that are hash-tagged



My Python code so far



import in_place

hashfile = open('hashfile.txt', 'w+')
n1 = hashfile.read().rstrip('n')
print(n1)

checkWords = n1.split(',')
print(checkWords)

repWords = ["#"+i for i in checkWords]
print(repWords)
hashfile.close()

with in_place.InPlace('storyfile.txt') as file:
for line in file:
for check, rep in zip(checkWords, repWords):
line = line.replace(check, rep)
file.write(line)


The output



can be seen here
https://dpaste.de/Yp35



Why is this kind of output is coming?
Why the last sentence has no newlines in it?
Where I am wrong?

The output


attached image



The current working code for single text



import in_place

with in_place.InPlace('somefile.txt') as file:
for line in file:
line = line.replace('mome', 'testZ')
file.write(line)






python-3.x replace in-place






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 7:38







Rahul Pandey

















asked Nov 12 '18 at 17:09









Rahul PandeyRahul Pandey

32




32












  • What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

    – jwodder
    Nov 12 '18 at 17:14











  • yes, it is true.I have edited it. But still result is not what was expected

    – Rahul Pandey
    Nov 13 '18 at 5:47











  • following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

    – Rahul Pandey
    Nov 13 '18 at 17:15


















  • What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

    – jwodder
    Nov 12 '18 at 17:14











  • yes, it is true.I have edited it. But still result is not what was expected

    – Rahul Pandey
    Nov 13 '18 at 5:47











  • following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

    – Rahul Pandey
    Nov 13 '18 at 17:15

















What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

– jwodder
Nov 12 '18 at 17:14





What's the point of storyfile = open('storyfile.txt', 'r+')? You don't do anything with storyfile, and having two filehandles open for storyfile.txt may be what's messing with in_place.

– jwodder
Nov 12 '18 at 17:14













yes, it is true.I have edited it. But still result is not what was expected

– Rahul Pandey
Nov 13 '18 at 5:47





yes, it is true.I have edited it. But still result is not what was expected

– Rahul Pandey
Nov 13 '18 at 5:47













following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

– Rahul Pandey
Nov 13 '18 at 17:15






following @Srce Cde , I have removed one indent from last line. file.write(line) And its working now

– Rahul Pandey
Nov 13 '18 at 17:15













1 Answer
1






active

oldest

votes


















0














Look if this helps. This fulfills the objective that you mentioned, though I have not used the in_place module.



hash_list = 
with open("hashfile.txt", 'r') as f:
for i in f.readlines():
for j in i.split(","):
hash_list.append(j.strip())
with open("storyfile.txt", "r") as f:
for i in f.readlines():
for j in hash_list:
i = i.replace(j, "#"+j)
print(i)


Let me know if you require further clarification on the same.






share|improve this answer






















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266956%2fpython-updating-multiple-words-in-a-text-file-based-on-text-in-another-text-fi%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Look if this helps. This fulfills the objective that you mentioned, though I have not used the in_place module.



    hash_list = 
    with open("hashfile.txt", 'r') as f:
    for i in f.readlines():
    for j in i.split(","):
    hash_list.append(j.strip())
    with open("storyfile.txt", "r") as f:
    for i in f.readlines():
    for j in hash_list:
    i = i.replace(j, "#"+j)
    print(i)


    Let me know if you require further clarification on the same.






    share|improve this answer



























      0














      Look if this helps. This fulfills the objective that you mentioned, though I have not used the in_place module.



      hash_list = 
      with open("hashfile.txt", 'r') as f:
      for i in f.readlines():
      for j in i.split(","):
      hash_list.append(j.strip())
      with open("storyfile.txt", "r") as f:
      for i in f.readlines():
      for j in hash_list:
      i = i.replace(j, "#"+j)
      print(i)


      Let me know if you require further clarification on the same.






      share|improve this answer

























        0












        0








        0







        Look if this helps. This fulfills the objective that you mentioned, though I have not used the in_place module.



        hash_list = 
        with open("hashfile.txt", 'r') as f:
        for i in f.readlines():
        for j in i.split(","):
        hash_list.append(j.strip())
        with open("storyfile.txt", "r") as f:
        for i in f.readlines():
        for j in hash_list:
        i = i.replace(j, "#"+j)
        print(i)


        Let me know if you require further clarification on the same.






        share|improve this answer













        Look if this helps. This fulfills the objective that you mentioned, though I have not used the in_place module.



        hash_list = 
        with open("hashfile.txt", 'r') as f:
        for i in f.readlines():
        for j in i.split(","):
        hash_list.append(j.strip())
        with open("storyfile.txt", "r") as f:
        for i in f.readlines():
        for j in hash_list:
        i = i.replace(j, "#"+j)
        print(i)


        Let me know if you require further clarification on the same.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 13:47









        Srce CdeSrce Cde

        1,184511




        1,184511





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266956%2fpython-updating-multiple-words-in-a-text-file-based-on-text-in-another-text-fi%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            Crossroads (UK TV series)

            ữḛḳṊẴ ẋ,Ẩṙ,ỹḛẪẠứụỿṞṦ,Ṉẍừ,ứ Ị,Ḵ,ṏ ṇỪḎḰṰọửḊ ṾḨḮữẑỶṑỗḮṣṉẃ Ữẩụ,ṓ,ḹẕḪḫỞṿḭ ỒṱṨẁṋṜ ḅẈ ṉ ứṀḱṑỒḵ,ḏ,ḊḖỹẊ Ẻḷổ,ṥ ẔḲẪụḣể Ṱ ḭỏựẶ Ồ Ṩ,ẂḿṡḾồ ỗṗṡịṞẤḵṽẃ ṸḒẄẘ,ủẞẵṦṟầṓế