处理函数以输入任意数量的文本文件作为参数。功能是计算行,字和字符的每个文件,以及一个总数:Python:具有多个参数的函数中的计数器
lines = words = chars = 0
def cfunc(folder, *arg):
global lines, words, chars
for x in arg:
with open("{}{}".format(folder, x), "r") as inp:
for line in inp:
lines += 1
words += len(line.split(" "))
chars += len(line)
print(x, lines, words, chars)
cfunc("C:/", "text1.txt", "text2.txt", "text3.txt")
计数器是第一个文件是正确的。对于第三个计数器本质上显示了所有3个文件中的行/字/字符的总数。据我了解,这是因为inp一起读取所有3个文件,并且计数器在所有文件中都是相同的。我怎样才能分开计数器来分别打印每个文件的统计信息?
你为什么使用'global' ?!这是明确的**完全相反,你说你想要的行为。如果您将'lines = words = chars = 0' *放入循环*中,您将分别获得每个文件的计数。 – jonrsharpe
你为什么在这里使用全球? – acushner