Python自学及心得

python 文件I/O

2021-10-17  本文已影响0人  Jeff_9021

一、文件file

1、方法涉及到file的创建、打开、写入、读取、关闭

2、属性包括名称、是否已关闭、模式

#!/usr/bin/python

# -*- coding:utf-8 -*-

#file对象相关方法

new_file = open("test.txt", a+)

若打开file必须要close文件,以防忘记close文件,处理如下:

with open("test.txt", a+) as f:

      print(f.read())

若读取文件非文本,为二进制文件,如图片,视频等。处理如下:

open(‘test.txt’, a+, encoding=‘gbk’)

若存在非法编码,处理如下:

open(‘test.txt’, a+, encoding=‘gbk’, errors=‘ignore’)

因read()读的内容为全部,内容太多处理如下:

多次调用f.read(size)或者f.readline()

针对常用的读取配置文件,处理如下:

for line in f.readlines ():

      print(line.strip()) #把末尾的/n删掉

new_file.write("I am a bride.")

new_file.read(13)

new_file.close()

cat test.txt

#file对象相关属性

print "文件名:", new_file.name

print "是否已关闭:", new_file.closed

print "访问模式:", new_file.mode

3、对file进行操作,需要权限,借助os模块

对file进行重命名、删除操作

#!/usr/bin/python

# -*- coding:utf-8 -*-

import os

os.rename("test.txt", "test1.txt")

os.remove("test1.txt")

二、目录dir

file文件需要存在于目录下,对目录的操作方法有创建、改变、删除、

#!/usr/bin/python

# -*- coding:utf-8 -*-

import os

#只针对最后一级目录

os.mkdir("testSet")

os.getcwd()

os.chdir("/home/testSet1")

os.rmdir("testSet1")

三、file在目录下

1、数据写入file中,然后放到指定目录下

#!/usr/bin/python

# -*- coding:utf-8 -*-

import os

def save_date_to_file(date2, file_path, mode="a+", encoding="utf-8"):

      file_path_dir = os.path.dirname(file_path)

      if not os.path.exists(file_path_dir):

              #可创建多级目录

              os.makedirs(file_path_dir)

      try:

              with open(file_path, mode, encoding=encoding) as f:                                                                                                                                                                       

                    f.write(data2)

              return True, "保存成功"

        except Exception as e:

              return False, ‘保存失败:{}’.format(e)

if __name__=="__main__":

      data2 = '我是新的内容哦!'

      file_path = '/home/testSet1'

      save_data_to_file(data2, file_path, encoding='gbk')

#直接创建新的目录

#file_dir = os.path.join("/home/testSet1", "test2.txt")

上一篇 下一篇

猜你喜欢

热点阅读