我有一个脚本可以准确地告诉我目录中有多少文件,以及其中的子目录.但是,我也在研究识别同一目录及其子目录中有多少个文件夹......
我目前的剧本:
import os, getpass
from os.path import join, getsize
user = 'Copy of ' + getpass.getuser()
path = "C://Documents and Settings//" + user + "./"
folder_counter = sum([len(folder) for r, d, folder in os.walk(path)])
file_counter = sum([len(files) for r, d, files in os.walk(path)])
print ' [*] ' + str(file_counter) + ' Files were found and ' + str(folder_counter) + ' folders'
Run Code Online (Sandbox Code Playgroud)
这段代码给了我打印出来的:[*] 147 Files were found and 147 folders.
这意味着folder_counter不计算正确的元素.我怎样才能纠正这个问题folder_counter呢?
我试图想出一个很好的例子,详细说明了Ada的严格打字和Java的强类型之间的区别.有没有人有一个很好的例子来确定使用基于整数的值的类型转换中的这些差异?
我有一个迭代两个字符串数组的测试脚本,我想用它sys.stdout.write来为用户提供一个简单的"进度条".
我目前的剧本:
import sys
from time import sleep
names = ['Serv1', 'Serv2', 'Serv3', 'Serv4', 'Serv5']
states = ['Running', 'Stopped', 'Running', 'Running', 'Stopped']
terminated=0
passed=0
for i in range (0, len(names)):
if 'Running' in states[i]:
print " [*] stop if running {0} ".format(str(names[i]))
#service_info(action, machine, names[i])
terminated+=1
else:
print " [!] Passing over {0} ".format(str(names[i]))
passed+=1
sleep(2)
sys.stdout.write(" [ ] {0}/{1} progress left\r".format(i+1, len(names)))
Run Code Online (Sandbox Code Playgroud)
预期输出用于sys.stdout.write保持更新,而打印语句通知用户某些动作.但是当我运行它时,唯一的时间sys.stdout.write显示在脚本的末尾.例如
[*] stop if running Serv1
[!] Passing over Serv2
[*] …Run Code Online (Sandbox Code Playgroud)