打开文件
操作文件
1打开文件时,需要指定文件路径和打开方式
打开方式:
r:只读
w:只写
a:追加
“+”表示可以同时读写某个文件
r+:读写
w+:写读
a+:同a
U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
rb
wb
ab
1
2
3
4
5
6
7
8
|
f = open ( 'test.log' , 'r+' ,encoding = 'utf-' )
f.write( 'saf中sdhgrbfds' )
print (f.tell()) #查看当前指针位置,以字符为单位
f.seek() #指定当前指针位置,以字节为单位
print (f.read())
f.truncate() #读取指针之前的数据
print (f.tell())
f.close()
|
二:常见的文件运算
f = open('data', 'r') #以只读形式打开(默认就是只读)
f = open('f.txt', encoding='latin-1') #python3.0 Unicode文件
string = f.read() #把文件读入一个字符串中
string = f.read(N) #读取指针后的N个字节
string = f.readline() #读取下一行,包括行末标识符
alist = f.readlines() #读取整个文件到字符串列表
f.write() #将字符串写入文件
f.writelines() #将列表内所有字符串写入文件
f.close() #手动关闭
f.flush() #把输出缓冲区刷到硬盘中
f.seek(N) #将文件指针移到N处,以字节为单位
for line in open('data'):
print(line) #文件迭代器将文件一行行读出
open('f.txt','r').read() #read all at ance into string
三:在文件中存储并解析python对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
x,y,z = 41 , 42 , 43
s = 'spam'
D = { 'a' : 1 , 'b' : 2 } #字典对象
L = [ 'a' , 'b' , 'c' ] #列表
f = open ( 'f.txt' , 'w' )
f.write(s + '\n' )
f.write( '%s,%s,%s\n' % (x,y,z))
f.write( str (D))
f.write( '\n' )
f.write( str (L))
f.close()
print ( open ( 'f.txt' ).read()) #将文件内容输出
#从文件中取出数据,并判断其类型
'''
a = fi.readline()
b = fi.readline()
c = fi.readline()
d = fi.readline()
print(a,b,c,d,type(a),type(b),type(c),type(d))
'''
# 从文件中取出数据,并转换为存储前的类型
fi = open ( 'f.txt' )
a = fi.readline().rstrip() #rstrip()去掉换行符
print (a, type (a))
b = fi.readline().rstrip().split( ',' ) #字符串的split()方法,在括号中写入分隔符,将字符串分割为列表。
print (b, type (b))
c = fi.readline()
C = eval (c) #调用内置函数eval(),将字符串转化为可执行的python代码。
print (C, type (C), type (c))
d = fi.readline()
D = eval (d)
print (D, type (D), type (d))
|