On 2019-08-04 18:53, A S wrote:
Hi Mrab,

Thank you so much for your detailed response, I really really appreciate it as I have been constantly trying to seek help regarding this issue.

Yes, I figured that the dictionary is only capturing the last value :(
I've been trying to get it to capture and store all the values to memory in python but it's not working..

Are there any improvements that I could make to allow my code to work?

I would be truly grateful if you could provide further insights on this..

Thank you so much.

Make it a set and then add the words to it.


On Mon, 5 Aug 2019, 1:45 am MRAB, <pyt...@mrabarnett.plus.com <mailto:pyt...@mrabarnett.plus.com>> wrote:

    On 2019-08-04 09:29, aishan0...@gmail.com
    <mailto:aishan0...@gmail.com> wrote:
    > I want to compare the common words from multiple .txt files
    based on the words in multiple .xlsx files.
    >
    > Could anyone kindly help with my code? I have been stuck for
    weeks and really need help..
    >
    > Please refer to this link:
    >
    
https://stackoverflow.com/questions/57319707/how-to-compare-words-from-txt-file-against-words-in-xlsx-file-via-python-i-wi
    >
    > Any help is greatly appreciated really!!
    >
    First of all, in this line:

         folder_path1 = os.chdir("C:/Users/xxx/Documents/xxxx/Test
    python dict")

    it changes the current working directory (not a problem), but 'chdir'
    returns None, so from that point 'folder_path1' has the value None.

    Then in this line:

         for file in os.listdir(folder_path1):

    it's actually doing:

         for file in os.listdir(None):

    which happens to work because passing it None means to return the
    names
    in the current directory.

    Now to your problem.

    This line:

         dictionary = cell_range.value

    sets 'dictionary' to the value in the spreadsheet cell, and you're
    doing
    it each time around the loop. At the end of the loop, 'dictionary'
    will
    be set to the _last_ such value. You're not collecting the value, but
    merely remembering the last value.

    Looking further on, there's this line:

         if txtwords in dictionary:

    Remember, 'dictionary' is the last value (a string), so that'll be
    True
    only if 'txtwords' is a substring of the string in 'dictionary'.

    That's why you're seeing only one match.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to