1 1,文件和目录
2 1.1使用open函数
3 1.2使用file的类
4
5 文件句柄 = open(文件名,打开模式) --打开
6 文件句柄.read --读取
7
8 例如:
9 fo=os.open("./123.txt") --默认以只读模式 ##使用open函数
10 fo.write("xxxxxxxx") -- ##说明,不会自动加上换行符 \n
11 fo.read()
12 fo.close()
13
14 f1=file("./1.txt") --默认以只读模式 ##使用file类
15 f1.read()
16 f1.write("xxxxxxxx") -- ##说明,不会自动加上换行符 \n
17 f1.close()
18
19 模式:
20 r ---只读
21 r+ ---读写
22 w ---只写,会清空文件,会创建
23 w+ ---读写,会清空文件,会创建
24 a ---只写,追加,会创建
25 a+ ---读写,追加,会创建
26 b ---二进制,可于以上模式结合使用
27 U ---支持所有换行符号
28
29
30 fnew=open("./1.txt","w")
31 fnew.write("xxxxxx") --写入内容,此时只在缓冲区
32 fnew.close() --关闭时,才会真正写入到文件中
33
34 for i in open("./123.txt","r"): ##每读取一行为列表中的一个元素
35 print i
36
37 2,文件对象的方法
38 一个字符串 = fo.read() --一次读取所有数据
39
40
41 一个字符串 = fo.readline() --每次读取一行
42 readline() 从文件中读取单独一行,字符串结尾会自动加上一个换行符,只有当文件最后一行没有以换行符结尾时,这一操作才会被忽略。这样返回值就不会有什么混淆不清,
43 如果 if f.readline() 返回一个空字符串,那就表示到达了文件末尾,
44 如果是一个空行,就会描述为‘\n’,一个只包含换行符的字符串。
45
46 列表 = fo.readlines() --一次读完,每行作为列表的一个元素
47
48 例:
49 ##读取当前目录下的文件
50 fileh=open("./123.txt") ##打开文件
51 while(1):
52 txt_line=fileh.readline() ##读取文件
53 if txt_line =='': ## 这里必段要加BREAK条件,否则文件读完后一直打印空,函数不退出
54 break
55 else:
56 txt_line=txt_line.rstrip('\n')
57 print txt_line
58
59
60
61
62
63 fo.next() --返回当前行,并将文件指针移到下一行
64 --类似于readline 当比readline好,在于读完后会有提示,
65 --而readline则读完后,则会返回空
66
67 fo.write() ---单行写入,一次只能写入一个字符串,且不会自动换行
68 fo.writelines() ---多行写入,
69 例如:
70 list=["nihao","ma","henhao"]
71 fo.writelines(list)
72 ----列表中的每个元素,作为一行写入,自动换行写入到文件中
73
74
75
76
77
78
79 3,seek()函数 --移动指针函数
80 fo.seek(偏移量,选项)
81 选项为:
82 0 从头部开始,向后偏移
83 1 从当前开始,向后偏移
84 2 从文件尾开始,向前偏移
85
86 例:
87 seek(0,0) 移动到头
88 seek(0,2) 移动到尾
89 seek(1,0) 在当前位置向后移1
90 seek(-1,0) 在当前位置向前移1
91
92 4,flush()函数 --提交更新函数
93 FileObject.flush() ---将缓冲区内容立马写到文件中(因为一般情况是只有close了才会真正写入到文件中)
94
95
96 5,文件的查找和替换
97
98
99
100
101
102
103 ###############目录操作#####################
104 os 模块
105 import os
106 1,目录操作
107 目录的创建,修改,遍历
108
109 例:
110 1.1创建目录
111 os.mkdir('./huang') ## 创建一个目录
112 os.makedirs("./huang/hyy/pyton") ##创建多个目录 (只能是目录)
113
114 注意:
115 os.makedirs("./huang/hyy/1.txt") ##则最后一个1.txt也是目录
116
117
118 1.2删除目录
119 os.rmdir("./huang/hyy") ##只删除了hyy目录
120 os.removedirs("./huang/hyy") ##删除了多个目录
121 注意:
122 目录非空是删除不了的
123
124 1.3列出目录
125 ##返回值是一个列表
126 a=os.listdir("./huang") ##只能列出当前目录下面的文件和目录,而不能递归到下一层目录下
127 print (a)
128
129
130 a=os.getcwd() ##查看当前路径(此函数是没有参数的)
131 print(a)
132 os.chdir("./huang/hyy") ##更改工作目录
133
134 2,目录的遍历
135 listdir()
136 os.path.join(字符串1,字符串2) ##字符串1一般是路径,字符串2一般是文件或目录名
137 ##会自动在两个参数间加"\"
138 ##返回带路径的字符串
139
140 os.path.isdir(字符串) ##字符串为带路径的文件名
141 ##判断是否为目录,是返回Ture,否则返回False
142 os.walk(path)
143 ##path为带有绝对路径的字符串
144 ##返回一个元组,此元组有三个元素
145 (绝对路径,[目录列表],[文件列表])
146
147 ##说明:如果是WINDOWS下,则路径字符串需要如下方式:即加要“\”
148 C:\\Users\\Administrator\\Desktop\\22
149
150 遍历例子1:
151 def dirlist (path):
152 a=os.listdir(path) ##列出path路径下的所有文件和文件名
153 for i in a:
154 i=os.path.join(path,i) ##拼接成绝对路径
155 if os.path.isdir(i): ##遍历文件和目录
156 print ("#####%s",i) ##是目录则递归
157 dirlist(i)
158 else:
159 print (i) ##非目录则打印出来
160 else:
161 pass
162
163 path="C:\\Users\\Administrator\\Desktop\\huang"
164 ##path=r"C:\Users\Administrator\Desktop\huang" ##前面使用r表示里面的字符保留本意
165 dirlist(path)
166
167 3,判断本地的文件是否存在
168
169 os.path.exists(带路径文件名)
170 os.path.exists("./1.txt")