python全栈开发---文件处理

python文件处理

最近好多同学说不会文件的处理,在这里总结一下文件处理的知识点。

 

一、打开文件,关闭文件

文件的操作采用open()的方法

file = open(filename,mode,encoding)    #打开文件
           
file.close()                  #关闭文件

其中

filename: 要打开的文件路径,mode: 打开文件的模式,encoding:打开文件的编码格式(一般采用utf-8)

打开文件的模式:

 

注意:filename是文件的路径,当你没有路径只写了一个文件名的时候,默认是在当前文件夹下创建,当你使用绝对路径的时候,记得转译路径中的‘ \ ’

f = open(file='1.txt', mode='w', encoding='utf-8')  #在当前文件夹下创建

#注意绝对路径
f = open(file='C:\\Users\\Administrator\\Desktop\\1.txt', mode='w', encoding='utf-8')

二、常用的方法

# 读文件
f = open(file='1.txt', mode='r',encoding='utf-8')
data = f.read()
print(data)
f.close()

# 循环遍历文件
f = open(file='1.txt', mode='r')
for line in f:
    print(line)

# 写文件
f = open(file='2.txt', mode='w', encoding='gbk')
f.write('学习python.')
f.close()

# 追加模式 这个模式是在以存在的文件的末尾最后继续写入内容
f = open(file='2.txt', mode='a', encoding='gbk')
f.write('学习java.')
f.close()

# 读写模式
f = open(file='2.txt', mode='r+', encoding='gbk')
data = f.read()
print(data)
f.write('\n学习C.')
f.close()

# 写读模式
f = open(file='2.txt', mode='w+', encoding='gbk')
f.write('\n新疆.')
data = f.read()
print(data)
f.close()
# 其他功能
f = open(file='C:\\Users\\Administrator\\Desktop\\1.txt', mode='r+', encoding='gbk')
f.fileno()     # 返回文件句柄在内核的索引值,IO多路复用时用到
f.flush()      # 把文件从内存buffer中强制刷新到硬盘
f.readable()   # 判读文件是否可读
f.readline()   # 只读一行遇到\n \r截止
f.tell()       # 返回当前光标位置
f.seek()       # 移动光标到指定位置
f.seekable()    # 判断文件是否可进行seek操作
f.truncate()    # 按指定长度截断文件*指定长度的话,从开头开始截断, 不指定长度的话,从当前位置到尾部全部去掉
f.writable()    # 判断是否可写

 

三、文件修改

 

下面写个简单方法实现文件的修改:

 

# 文件修改
improt os         #这里导入了os模块去改文件名
f_name = 'C:\\Users\\Administrator\\Desktop\\3.txt'
f_new_name = '%s.new' % f_name
old_str = '新疆'
new_str = '北京bj'
f = open(file=f_name, mode='r', encoding='gbk')
f_new = open(file=f_new_name, mode='w', encoding='gbk')
for line in f:
    if old_str in line:
        line = line.replace(old_str,new_str)
    f_new.write(line)
os.rename(f_new_name, f_name)

四、使用with操作文件

用with语句来操作,这样就不需要手动来关闭文件了。

# 用with语句打开,不需要在写f.close()
with open('1.txt','r',encoding='utf-8') as f:
    print(f.read())

初入博客园,写的不好请多多指正,如发现问题,我会及时更正,共同进步。

posted @ 2018-04-11 11:13  devilwolf  阅读(171)  评论(0)    收藏  举报