《Python核心编程》第二章开头的例子, open函数mode a,appending是什么...
发布网友
发布时间:2022-05-02 19:57
我来回答
共3个回答
热心网友
时间:2022-04-18 15: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()追问谢谢,你也告诉我了不少东西。我自己最后解决了,因为我的目录下没有'/tmp/mylog.txt这个文件,也没用tmp这个文件,所以书上的那个例子一直弄不对。我自己建的一个mylog.txt建在了我的python文件夹目录下,但是open的时候地址却弄错了。所以一直没办法正确执行。
不过前面有个人先回答了,我就把满意答案给他了,不好意思。
追答你看不出谁先回答的吗????? 别人答过我一般不答的
热心网友
时间:2022-04-18 16:28
你想做的是什么呢?
如果你想把
'Fatal error: invalid input!'
这句string写到一个文件里,那么第一句必须用'w'参数先创建一个文件。直接用'a' 不能创建文件,只能打开已经存在的文件然后在后面添加新的内容。
如果程序顺利执行,那么你指定的文件夹下面就会出现一个mylog.txt 的文件,里面有你print 进去的内容。
b的作用是和 pickle 这个模块配套使用的,建议你去看看python手册中的pickle部分,看完了以后就知道b的作用了。追问恩恩,其实我发现我的问题是open的目录名不对,我自己安装python在D盘,里面没有tmp这个文件夹,python里面也没有,我就自己改成了'/mylog.txt。今天一下查到了这个文件在D盘,才发现是目录名的问题。
另外你告诉我w能创建文件也很重要,谢谢!
追答不客气
热心网友
时间:2022-04-18 18:02
/tmp/mylog.txt这种写法是linux系统文件夹路径的写法,在windows系统下应该这样写
logfile =open(r'\tmp\mylog.txt', 'a')
由于\在python中有转义的作用,在字符串前面加个r表示使用原始字符串,不进行转义。这样会打开python程序运行目录下的tmp文件夹中的mylog.txt进行追加。
用普通方式打开文档会转换文件中的特殊字符,比如回车换行符,用二进制方式打开则不会转换