打印文件内容并计算文件中的行数-Python

时间:2018-10-06 01:59:56

标签: python

使用python入门编程课程。

我们本周的任务是创建一个名为“ randomnum.txt”的文本文件,并使用python脚本进行打印。我能够成功创建文件,但是第二部分的任务是打印文件内容并计算.txt中的数字(行)数。

我已经能够打印内容或计算行数,但是从来没有。我对Python很不好,想要一些帮助。

with open ('randomnum.txt','r') as random_numbers:
    num_nums = 0  
    contents = random_numbers.read()
    for lines in random_numbers:
        num_nums += 1
    print('List of random numbers in randomnum.txt')
    print(contents)
    print('Random number count: ', num_nums) 

通过这种方式,我的随机数为0。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

这是一个好问题,因为您观察到只能读取一次文件对象的行为。致电random_numbers.read()后,您将无法重复该操作。

我建议您不要使用.read()来代替.readlines()。它逐行读取每一行,而不是一次读取整个文件。遍历每一行时,在计数器中添加一行并打印当前行:

with open("file.txt", "r") as myfile:
    total = 0
    for line in myfile.readlines():
        print(line, end="")
        total += 1
    print("Total: " + str(total))

请注意我传递给打印的第二个参数(end="")。这是因为默认情况下,print添加了换行符,但是由于文件在行末已经具有换行符,因此您将打印两行新行。 end=""停止了print打印尾随换行符的行为。

答案 1 :(得分:0)

尝试使用此方法(gdb) layout reg b main r si (press return to single-step one instruction at a time through the code, including into your function) ,然后readlines,使用方法描述符对其进行剥离,然后仅使用map来获取长度:

len

使用with open ('randomnum.txt','r') as random_numbers: l=random_numbers.readlines() print('List of random numbers in randomnum.txt') print(''.join(map(str.rstrip,l))) print('Random number count: ', len(l)) 的代码输出为:

randomnum.txt

输出:

1
2
3
4
5
6

答案 2 :(得分:-1)

调用.read()并用for ... in ...进行迭代都会消耗文件的内容。除非您在两者之间致电.seek(0),否则您将无法做到这两者。另外,也可以不调用.read(),而可以捕获for循环中的行(也许切换到.readlines()),然后不必担心。