cmd 和 IDLE 中的不同结果 python

Different result in cmd and IDLE python

我有一个 Python 2.7 脚本,它只能在 IDLE 上完美运行,结果如下所示:

**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\Temp17\Bukti_PPR\xxx1.py ================
38, 23, 35, 36, 38, 36, 35, 36, 37, 36, 34, 36, 420
>>>** 

但是,在 cmd 中我得到了这样的结果:

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

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

我需要像 IDLE 视图中那样的结果。有人遇到过像我一样的问题吗?以及如何解决?是的,我的情况只能让我使用 Python 2.7.

这是我的代码,想法是计算一年中每个月的 *.png 文件

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

提前致谢

谢谢你的建议,很有帮助

所以我将 print(os.getcwd()) 添加到我的代码中,但确实 错误的工作目录 。对不起,我很固执,因为我以前用 Python 3.6

没有问题

然后我对 cmd 执行此操作,有点麻烦,因为我必须转到我的确切目录,但没关系

C:\Users\DELL>d:

D:\>cd Act\Temp17\Bukti_PPR

D:\Act\Temp17\Bukti_PPR>C:\Python27\python.exe D:\Act\Temp17\Bukti_PPR\xxx1.py
D:\Act\Temp17\Bukti_PPR
38, 23, 35, 36, 38, 36, 35, 36, 37, 36, 34, 36, 420

这就是答案,希望对类似问题有用