使用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。
任何帮助将不胜感激!
答案 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()
),然后不必担心。