Search code examples
pythonpython-2.7python-idlepython-cmd

Different result in cmd and IDLE python


I have a Python 2.7 script that works perfectly only on IDLE, the result looking like this :

**Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
================ RESTART: D:\Act\Temp\2017\Bukti_PPR\xxx1.py ================
38, 23, 35, 36, 38, 36, 35, 36, 37, 36, 34, 36, 420
>>>** 

But, in cmd I got the result like this :

**C:\Users\DELL>C:\Python27\python.exe D:\Act\Temp\2017\Bukti_PPR\xxx1.py

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0**

I need a result like in the IDLE view. Did somebody ever get the same problem like me? and how to fix it please? and yes I'm in a condition that makes me use only Python 2.7.

Here's my code, the idea is to count *.png file per month in a year

import fnmatch
import os

pattern1 = "*201701*.png"
pattern2 = "*201702*.png"
pattern3 = "*201703*.png"
pattern4 = "*201704*.png"
pattern5 = "*201705*.png"
pattern6 = "*201706*.png"
pattern7 = "*201707*.png"
pattern8 = "*201708*.png"
pattern9 = "*201709*.png"
pattern10 = "*201710*.png"
pattern11 = "*201711*.png"
pattern12 = "*201712*.png"
this1 = []
this2 = []
this3 = []
this4 = []
this5 = []
this6 = []
this7 = []
this8 = []
this9 = []
this10 = []
this11 = []
this12 = []
#fold = []
for root, dirs, files in os.walk("."):
    for entry in fnmatch.filter(files, pattern1):
            this1.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern2):
            this2.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern3):
            this3.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern4):
            this4.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern5):
            this5.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern6):
            this6.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern7):
            this7.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern8):
            this8.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern9):
            this9.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern10):
            this10.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern11):
            this11.append(entry)
            #fold.append(os.path.join(root,entry))
    for entry in fnmatch.filter(files, pattern12):
            this12.append(entry)
            #fold.append(os.path.join(root,entry))

bulan = [len(this1),len(this2),len(this3),len(this4),len(this5),len(this6),len(this7),len(this8),len(this9),len(this10),len(this11),len(this12)]
setahun = sum(bulan)
jumlah = [len(this1),len(this2),len(this3),len(this4),len(this5),len(this6),len(this7),len(this8),len(this9),len(this10),len(this11),len(this12), setahun]
#print (jumlah)
print (', '.join(map(str, jumlah)))

Thank you in advance


Solution

  • Thank You for the suggestions, very helpful

    So I add print(os.getcwd()) to my code and really got wrong working directory. Sorry for being stubborn for that, because I have no problem before with Python 3.6

    then I do this to cmd, a bit troublesome because I must go to my exact directory, but it's Ok

    C:\Users\DELL>d:
    
    D:\>cd Act\Temp\2017\Bukti_PPR
    
    D:\Act\Temp\2017\Bukti_PPR>C:\Python27\python.exe D:\Act\Temp\2017\Bukti_PPR\xxx1.py
    D:\Act\Temp\2017\Bukti_PPR
    38, 23, 35, 36, 38, 36, 35, 36, 37, 36, 34, 36, 420
    

    That's the answer, hopefully useful for similar problem