鱼C论坛

 找回密码
 立即注册
查看: 892|回复: 7

[已解决]第二十九讲课后练习题第1题

[复制链接]
发表于 2020-6-19 17:03:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大佬,我的代码如下:

name1=input("请输入需要比较的头一个文件名:")
name2=input("请输入需要比较的另一个文件名:")
f1=open(name1)
f2=open(name2)

count=0
hans=0
result=''

while f1.tell() <= f1.tell(-1) and f2.tell() <= f2.tell(-1):    #结果报错显示tell()里不带参数的,我想问有什么方法可以直接读出文件里共有多少字节?感谢!
    hans+=1
    if f1.readline() != f2.readline():
        count+=1
        result=result+"第"+str(hans)+"行不一样"+"\n"
    else:
        continue

print("两个文件共有",count,"处不同")
print(result)

f1.close()
f2.close()
最佳答案
2020-6-19 18:53:22
吃鲸不放辣 发表于 2020-6-19 18:48
比如:
talker.txt 文件有个字符串:"我是“
那么len(f.read())=2

我想到一个 就是麻烦点

先 read() 然后 在 tell  然后再 seek(0,0) 回到文件开始处  这样 tell 时候就是总字节数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-19 17:11:31 | 显示全部楼层
本帖最后由 Twilight6 于 2020-6-19 18:50 编辑


错误判断...!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 17:16:33 | 显示全部楼层
#-*-coding:gbk-*-
import os
filename = input('请输入文件名:') . strip()
if(len(filename)):
    if os . path . exists(filename) :
        print(filename , ':' , os . path . getsize(filename) , '字节')
    else: 
        print('文件' , filename , '不存在!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 17:48:53 | 显示全部楼层
Twilight6 发表于 2020-6-19 17:11
read() 就是逐个读取字节或字符的作用呀

你可以通过判断 len(read()) 是否等于 tell() 来判断文件是否 ...

大佬,一个汉字字符占两个字节,read()返回的所有字符,Len(read())不是表示字符的个数吗?没搞懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 18:48:27 | 显示全部楼层
Twilight6 发表于 2020-6-19 17:49
但是 tell 也是根据字节数呀~  当我是 2 个  你也是 2 个 那不就一致了?

比如:
talker.txt 文件有个字符串:"我是“
那么len(f.read())=2
字节占用是4,也就是指针到末尾的时候f.tell()=4
如果是这样,那我的循环条件不成立啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 18:50:36 | 显示全部楼层
吃鲸不放辣 发表于 2020-6-19 18:48
比如:
talker.txt 文件有个字符串:"我是“
那么len(f.read())=2

  对哦  是我的错 !!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 18:53:22 | 显示全部楼层    本楼为最佳答案   
吃鲸不放辣 发表于 2020-6-19 18:48
比如:
talker.txt 文件有个字符串:"我是“
那么len(f.read())=2

我想到一个 就是麻烦点

先 read() 然后 在 tell  然后再 seek(0,0) 回到文件开始处  这样 tell 时候就是总字节数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 19:09:04 | 显示全部楼层
额,如果是想要直接获取文件有多少字节的话

import os
    os.path.getsize(文件名)     

这个方法可以直接获取文件的总字节

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表