處理函數以輸入任意數量的文本文件作爲參數。功能是計算行,字和字符的每個文件,以及一個總數: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