python学习之文件读写
實現(xiàn)文件的讀寫
#! /usr/bin/python
file_add = open('test.txt','a')
for i in range(1,5):
file_add.write("1.1.1.%d 255.255.255.255 %d ?2.2.2.%d 255.255.255.168 \n" %(i,i,i))
file_add.close()
期間遇到的問題:
1、字符串格式化問題—多個參數(shù)
-sh-4.1# ./add.py
Traceback (most recent call last):
File "./add.py", line 4, in <module>
file_add.write("1.1.1.%d 255.255.255.255 %d ?2.2.2.%d 255.255.255.168 \n" %i %i %i)
TypeError: not enough arguments for format string
-sh-4.1# ./add.py
File "./add.py", line 4
file_add.write("1.1.1.%s 255.255.255.255 %d 2.2.2.%s 255.255.255.168 \n" %i,%i,%i)
^
SyntaxError: invalid syntax
?
查閱資料(http://www.cnblogs.com/vamei/archive/2013/03/12/2954938.html):
格式化字符串時,Python使用一個字符串作為模板。模板中有格式符,這些格式符為真實值預留位置,并說明真實數(shù)值應(yīng)該呈現(xiàn)的格式。Python用一個tuple將多個值傳遞給模板,每個值對應(yīng)一個格式符。在模板和tuple之間,有一個%號分隔,它代表了格式化操作。
比如下面的例子:print("I'm %s. I'm %d year old" % ('Vamei', 99))
?
2、讀寫操作問題—參數(shù)
-sh-4.1# ./add.py
Traceback (most recent call last):
File "./add.py", line 4, in <module>
file_add.write("1.1.1.%d 255.255.255.255 %d 2.2.2.%d 255.255.255.168 \n" %(i,i,i))
IOError: File not open for writing
將file_add = open('test.txt','r')改成file_add = open('test.txt','w')解決;
但是,每次運行add.py時原來寫入text.txt中的內(nèi)容會被覆蓋,如果需要追加寫入文件,file_add = open('test.txt','w')改成file_add = open('test.txt','a').
可參考如下(http://www.cnblogs.com/dkblog/archive/2011/02/24/1980651.html):
open/文件操作
f=open('/tmp/hello','w')
#open(路徑+文件名,讀寫模式)
#讀寫模式:r只讀,r+讀寫,w新建(會覆蓋原有文件),a追加,b二進制文件.常用模式
如:'rb','wb','r+b'等等
讀寫模式的類型有:
rU 或 Ua 以讀方式打開, 同時提供通用換行符支持 (PEP 278)
w?????以寫方式打開,
a?????以追加模式打開 (從 EOF 開始, 必要時創(chuàng)建新文件)
r+?????以讀寫模式打開
w+?????以讀寫模式打開 (參見 w )
a+?????以讀寫模式打開 (參見 a )
rb?????以二進制讀模式打開
wb?????以二進制寫模式打開 (參見 w )
ab?????以二進制追加模式打開 (參見 a )
rb+????以二進制讀寫模式打開 (參見 r+ )
wb+????以二進制讀寫模式打開 (參見 w+ )
ab+????以二進制讀寫模式打開 (參見 a+ )
最后,提醒open()操作之后一定要close()。
?
轉(zhuǎn)載于:https://www.cnblogs.com/jliu/p/3972514.html
總結(jié)
以上是生活随笔為你收集整理的python学习之文件读写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android学习笔记——Menu(二)
- 下一篇: Python模拟ICMP包