为了账号安全,请及时绑定邮箱和手机立即绑定

这个也不太懂,如果是以1,0那样形式打开,是不是只是用来处理数据的时候有用?

这个也不太懂,如果是以1,0那样形式打开,是不是只是用来处理数据的时候有用?

qq_遁去的一_1 2022-08-12 07:07:14
logfile =open('/tmp/mylog.txt', 'a')print >> logfile, 'Fatal error: invalid input!'logfile.close()环境的话,是win7下的python shell里面,Pyth2.7.3例子的话就是这个,因为我安装的地方不是默认文件夹,所以里面没有/tmp/mylog.txt,我自己新建了一个mylog.txt。open函数定义是这样open(filename, mode, bufsize),这个看懂了,但是对于mode, r的话是只读,我改成r后,第二行print不能执行,所以我的理解是只读的话不能改变,不能动。然后我试了a和w, appending是添加的意思么?就是指在原始file内容后添加?w是覆盖掉原始file的内容么? 然后像这样,我都试着执行了一遍,但是执行后什么都没显示,就是回归到了命令行等待的状态。然后我以为是对file内容进行了修改,发现也没有。print >> logfile(这个是stream file), 'Fatal error: invalid input!' (这个不是内容么?)这行语句执行后,难道不该显示出来吗? 请帮忙解答一下。我是新手,不太懂。上面理解或者什么地方有误,都麻烦指出一下,谢谢!对了,那个open里面有个b, 是以二进制的方式打开文档么? 
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

写这么多,但是我没看出来你执行这个到底报错还是什么的,如果报错的消息在那里?
logfile =open('/tmp/mylog.txt', 'a')
print >> logfile, 'Fatal error: invalid input!'
logfile.close()

你的 print >> logfile, 'Fatal error: invalid input!' 是把后面这个文件写回到logfile 里,'a'的话是追加到文件最后

文件操作的基本语法在下面:

handle=open(file_name,access_mode="r")

file_name 变量包含我们希望打开的文件的字符串名称,access_mode 中的'r'表示读取(试图写入会报错),‘w’表示写入(从开头写),'a'表示添加(在文件最后添加),其它可能用到的标实还有‘+’表示读写,‘b’表示2进制访问,如果未提供access_mode,默认为“r”.

如果open()成功,一个文件对象句柄会被返回,否则会报错
显示内容:

for eachline in handle:
print eachline,
fobj.close()

查看完整回答
反对 回复 2022-08-15
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

你想做的是什么呢?

如果你想把
'Fatal error: invalid input!'

这句string写到一个文件里,那么第一句必须用'w'参数先创建一个文件。直接用'a' 不能创建文件,只能打开已经存在的文件然后在后面添加新的内容。

如果程序顺利执行,那么你指定的文件夹下面就会出现一个mylog.txt 的文件,里面有你print 进去的内容。

b的作用是和 pickle 这个模块配套使用的,建议你去看看python手册中的pickle部分,看完了以后就知道b的作用了。



查看完整回答
反对 回复 2022-08-15
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

/tmp/mylog.txt这种写法是linux系统文件夹路径的写法,在windows系统下应该这样写
logfile =open(r'\tmp\mylog.txt', 'a')
由于\在python中有转义的作用,在字符串前面加个r表示使用原始字符串,不进行转义。这样会打开python程序运行目录下的tmp文件夹中的mylog.txt进行追加。
用普通方式打开文档会转换文件中的特殊字符,比如回车换行符,用二进制方式打开则不会转换

查看完整回答
反对 回复 2022-08-15
  • 3 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信