python常用文件操作

python常用文件操作

ps…记录一些常用的文件操作

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
import os


#获取系统模块参数
# print(os.environ.keys())

#系统盘符
# print(os.environ['HOME'])

#用户盘符
# print(os.environ['PWD'])

#window根目录
# print(os.environ['SYSTEMROOT'])

#路径拼接
print(os.path.join('d://','music'))

#当前文件读取指针
open('111.txt').tell()

#移动指针
open('111.txt').seek(0,1)

#当前文件目录
a = os.getcwd()
c = os.environ['PWD']
# print(a,b,c)

#当前文件路径
os.path.realpath(__file__)

#当前文件名
__file__

#创建文件夹
os.mkdir()

#重命名文件
os.rename()


w 以写方式打开,
a 以追加模式打开
r+ 以读写模式打开
w+ 以读写模式打开
a+ 以读写模式打开
rb 以二进制读模式打开
wb 以二进制写模式打开
ab 以二进制追加模式打开
rb+ 以二进制读写模式打开
wb+ 以二进制读写模式打开
ab+ 以二进制读写模式打开


def fillfile():
global new_folders,loopText,loop,os
os.mkdir(new_folders)
root = os.getcwd()
directory = root + os.sep + new_folders + os.sep
for i in range(0,100):
open(directory + repr(i) + '.txt','w')

return directory

#输出指定目录下的文件
def outputDirs():
dir = input("请输入需要输入的目录:\n")
if(os.path.isdir(dir)):
dirs = os.listdir(dir)
getDirs(dirs)
else:
print("未找到此目录")


def getDirs(dirs):
for i,e in enumerate(dirs):
print("No.%d\tname:%s"%(i,e))

#搜索文件
def searchFile():
file_name = input("请输入要搜索的文件名:\n")
if os.path.isfile(file_name):
print("您搜索的文件路径位于:%s"%(file_name))

#搜索文件是否存在
def searchFileStatus(file_name):
if os.path.isfile(file_name):
return True
else:
return False

#读取文件
def readFile():
file_name = input("请输入要读取的文件名:")
if searchFileStatus(file_name):
while True:
open_file = open(file_name,'r')
content = open_file.readlines()
if len(content) == 0:
break
print(content)


def searchFileForRename():
file_name = input("请输入要查找的文件名:\t(dirname+basebame)\n")
if os.path.isfile(file_name):
new_file_name = input("要重命名的文件名:\t(basebame)\n")
return (file_name,new_file_name)
else:
print("未找到此文件")

#重命名文件
def rename():
(a,b) = searchFileForRename()
realDirPath = os.path.dirname(a)
os.rename(a,realDirPath + os.sep + b)
print("旧文件名:%s\t新文件名:%s"%(a,b))

#写入文件
def writeFile():
file_name = input("请输入要写入的文件名:\n")
if searchFileStatus(file_name):
file = open(file_name,'w')
content = input("请输入要写入的内容:\n")
file.write(content)
print("写入完成")




#GUI
def dashboard():
mode = input(
"="*20
+"\n文件操作小工具"
+"\n1.搜索文件\n2.重命名文件\n3.列出指定目录下的文件\nt4.读取文件\n5.写入文件\n"+
"="*20 + "\n"
)

if int(mode) == 1:
searchFile()
elif int(mode) == 2:
rename()
elif int(mode) == 3:
outputDirs()
elif int(mode) == 4:
readFile()
elif int(mode) == 5:
writeFile()


# dashboard()

=============面向对象版本================
import os

class FileSystem:
def __init__(self):
self.mode = 0
self.modeDes = ['读取文件','创建文件','列出指定目录下的文件','删除文件','重命名文件']
self.selectMode()
self.callMethod()

def selectMode(self):
print("请输入要操作的方法:\n")
print("="*20)
for i,e in enumerate(self.modeDes):
print("%d.%s"%(i+1,e))
print("="*20)
mode = int(input())
self.mode = mode

def callMethod(self):
if self.mode == 1:
self.readFile()
elif self.mode == 2:
self.mkFile()
elif self.mode == 3:
self.outputDirs()
elif self.mode == 4:
self.deleteFile()
elif self.mode == 5:
self.renameFile()

def readFile(self):
file_name = self.getPrint("请输入要读取的文件:\n")
if self.fileExist(file_name):
open_file = open(file_name,'r')
while True:
content = open_file.readline()
if len(content) == 0:
break
print(content)

def mkFile(self):
print("请输入要创建的文件:")
file_name = input()
if ~self.fileExist(file_name):
open(file_name,'w')
print("创建成功")
else:
print("文件已存在,请重命名文件")

def outputDirs(self):
dir = self.getPrint("请输入指定目录下的文件")
if self.dirExist(dir):
files = os.listdir(dir)
for file in files:
print(file)

def deleteFile(self):
self.getPrint("请输入要删除的文件:\n")
if self.fileExist(file_name):
os.remove(file_name)
print("删除成功")
else:
print("文件不存在")

def renameFile(self):
file_name = self.getPrint("请输入要重命名的文件:\n")
if self.fileExist(file_name):
new_file_name = input("请输入新的文件名:")
if self.fileExist(new_file_name):
print("文件名已经存在,请重新输入")
else:
os.rename(file_name,new_file_name)
print("重命名文件名成功")

def fileExist(self,file):
if os.path.isfile(file):
return True
else:
return False

def dirExist(self,dir):
if os.path.isdir(dir):
return True
else:
return False

def getPrint(self,str):
print(str)
file_name = input()
return file_name


FileSystem()

文章目录
,
//