forked from vipstone/python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path文件操作.md
102 lines (72 loc) · 2.25 KB
/
文件操作.md
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# 文件操作 #
----------
## 读取文件 ##
读取文件使用python内置方法open()打开文件,使用.read()读取全部内容,示例如下:
```
path = "c:\py.txt"
fi = open(path, "r")
print(fi.read())
fi.close()
```
**with语法**
with是python2.5引入的自动释放资源的语法模式,确保使用过程中不管是否发生了异常,都会释放资源.
使用with读取文件,是不需要自己手动close的,示例如下:
```
with open(path) as fi:
print(fi.read())
```
**逐行读取文件**
.read()是读取文件的全部内容,使用.readlines(),示例如下:
```
with open(path, "r") as fi:
lines = fi.readlines()
print(len(lines))
```
**open方法的模式**
上面的示例可以看出来,open(目录,操作模式)的时候必须指定操作模式,open的操作模式:
> 读取模式:'r'(默认模式) | 写入模式:'w' | 附加模式:'a'.
python模式是读取,所以"r"可以省略,示例如下:
```
path = "c:\py.txt"
fi = open(path)
print(fi.read())
fi.close()
```
## 文件写入 ##
文件写入分为两种方式,一种是覆盖(w),另一种是追加(a)。
文件覆盖的写入,代码如下:
```
with open(path, "w") as fi:
fi.write("第一行\n第二行\n第三行")
```
文件的追加,代码如下:
```
with open(path, "a") as fi:
fi.write("\n第1行\n第2行\n第3行")
```
> 注意:文件写入,如果文件不存在会重建,不会报错。
## 更多文件操作 ##
os.getcwd():获取当前运行目录
os.listdir(path):获取指定目录下的列表
os.path.exists(path):检查是否存在文件或文件夹
os.mkdir(path):创建文件夹,已经存在文件会报错
os.remove(path):删除文件夹,只能删除文件夹
os.rename(old, new):文件重命名
示例如下:
```
import os
# 获取当前程序运行目录
print(os.getcwd())
# 获取指定目录下的列表
print(os.listdir("E:\\server"))
# 检查是否存在文件或文件夹
print(os.path.exists("E:\\test\\a.txt"))
# 创建文件夹,已经存在文件会报错
os.mkdir("E:\\test1")
# 删除文件夹,只能删除文件夹
os.remove("E:\\test1")
# 文件重命名
os.rename("E:\\test\\a.txt", "E:\\test\\b.txt")
```
----------
下一节:[异常处理](异常处理.md)