Python 一个计算文件中行数和字符数的函数
Python a function that counts lines and characters in a file
谁能看看我到目前为止做了什么?我自己还没成功定位到问题
def txt_file(file1):
file1 = open('text.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print "file1 contains", linecount, "lines and", charcount, "characters."
file1.close()
当您使用 for 循环时:
for line in file1:
line += 1
for循环中的变量line
只是循环遍历的变量的调用,与你要查找的内容无关。相反,在做了一些研究之后,试试这个行:
linecount = open(file1).read().count('\n')
对于字符,使用 for 循环排除空格:
for i in file1:
if i != " ":
charcount += 1
问题是打印语句一次缩进太多了。每次for循环都会执行,需要移到最后。
更好的方法是使用 len
:
file1=open("foo.txt", "r").readlines()
linecount=len(x)
charcount=sum(map(len, x))
print "file1 contains {0} lines and {1} characters".format(linecount, charcount)
charcount 之所以有效,是因为它获取每一行的 len,然后对它们求和。
这样更容易:
with open('text.txt') as the_file:
data = [len(i) for i in the_file]
line, char = len(data), sum(data)
您的代码中有几个错误:
- 缩进
- 打印必须在行循环外
- 你声明了一个你实际上不使用的函数参数
试试这个代码:
file1 = open('textfile.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print ("file1 contains", linecount, "lines and", charcount, "characters.")
file1.close()
如果您需要一个函数,可以这样定义和调用它:
def txt_file():
file1 = open('textfile.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print ("file1 contains", linecount, "lines and", charcount, "characters.")
file1.close()
if __name__ == "__main__":
txt_file()
在包含以下三行的示例文件中:
First Line
Second Line
Third Line
它产生以下输出:
file1 contains 3 lines and 33 characters.
(它也计算 space 和换行符)
谁能看看我到目前为止做了什么?我自己还没成功定位到问题
def txt_file(file1):
file1 = open('text.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print "file1 contains", linecount, "lines and", charcount, "characters."
file1.close()
当您使用 for 循环时:
for line in file1:
line += 1
for循环中的变量line
只是循环遍历的变量的调用,与你要查找的内容无关。相反,在做了一些研究之后,试试这个行:
linecount = open(file1).read().count('\n')
对于字符,使用 for 循环排除空格:
for i in file1:
if i != " ":
charcount += 1
问题是打印语句一次缩进太多了。每次for循环都会执行,需要移到最后。
更好的方法是使用 len
:
file1=open("foo.txt", "r").readlines()
linecount=len(x)
charcount=sum(map(len, x))
print "file1 contains {0} lines and {1} characters".format(linecount, charcount)
charcount 之所以有效,是因为它获取每一行的 len,然后对它们求和。
这样更容易:
with open('text.txt') as the_file:
data = [len(i) for i in the_file]
line, char = len(data), sum(data)
您的代码中有几个错误:
- 缩进
- 打印必须在行循环外
- 你声明了一个你实际上不使用的函数参数
试试这个代码:
file1 = open('textfile.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print ("file1 contains", linecount, "lines and", charcount, "characters.")
file1.close()
如果您需要一个函数,可以这样定义和调用它:
def txt_file():
file1 = open('textfile.txt', 'r')
linecount = 0
charcount = 0
for line in file1:
linecount +=1
for char in line:
charcount += 1
print ("file1 contains", linecount, "lines and", charcount, "characters.")
file1.close()
if __name__ == "__main__":
txt_file()
在包含以下三行的示例文件中:
First Line
Second Line
Third Line
它产生以下输出:
file1 contains 3 lines and 33 characters.
(它也计算 space 和换行符)