为什么课后作业29第三题文件读取输出后始终带着换行符号
def file_view(file_name,file_num):f=open(file_name,'r',encoding='UTF-8')
for i in range(int(file_num)):
print(f.readlines(),end="")
f.close()
file_name=input(r'请输入要打开的文件:')
file_num=input('请输入需要显示该文件的行数:')
file_view(file_name,file_num)
本帖最后由 Twilight6 于 2020-7-30 08:50 编辑
因为你文件内有换行,那么你的 txt 文本中每行的最后一个符号就是个 换行符
换行符属于不可见字符,所以你在文本中看不见,但是打印过程中又实现了换行的功能
readlines() 函数每次都只读取一行,而你文本只有多行内容,那么每行最后一个符号就是换行符
print 函数的默认参数 end ,是在 print 打印完成后自动追加打印 end = '\n' 的,但是因为这里文本中自带 \n
所以此时如果你在用 print 达到换行,会导致出现许多空行,所以此时对 end 重新赋值,覆盖原先的 end = '\n' 使其不起到换行的作用
Twilight6 发表于 2020-7-30 08:24
因为你文件内有换行,那么你的 txt 文本中每行的最后一个符号就是个 换行符
换行符属于不可见字符, ...
大佬您好,但是不知道为什么我print(f.readlines(),end="")打印出来依旧后面跟着'\n' “纸飞机” 发表于 2020-7-30 15:59
大佬您好,但是不知道为什么我print(f.readlines(),end="")打印出来依旧后面跟着'\n'
文本中只要你有换行 都会有 \n print(f.readlines(),end="")这里readlines多了一个s
read()从文件读取size个字符(单位是字节,中文算2个字节),当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回(注意这里的读取是从文件指针开始读取,而不是从初始位置)
readline()从文件中读取一整行字符串(包括末尾的换行'\n')
readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存
页:
[1]