python操作文件方法

本文主要和大家介绍了python操作文件,以及简单的复制备份. 希望能帮助到大家。

1.open函数
python中一切皆对象,所以正常我们打开一个文件的过程是
1.选中文件-打开文件-编辑,复制,删除等操作-关闭文件
放到python中用代码实现就是:
f = open(file, mode=’r’, buffering=none, encoding=none, errors=none, newline=none, closefd=true):
f.close()
其中file是文件的绝对路径加文件名,mode是文件读取方式,默认为r即只读方式,后面的选填
mode在源码的解释为

‘r’       open for reading (default) ‘w’       open for writing, truncating the file first ‘x’       create a new file and open it for writing ‘a’       open for writing, appending to the end of the file if it exists ‘b’       binary mode ‘t’       text mode (default) ‘+’       open a disk file for updating (reading and writing) ‘U’       universal newline mode (deprecated)

登录后复制登录后复制

建议大家看源码:翻译过来就是:
r   以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb  以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+  打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w   打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb  以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a   打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
这里我们每次打开file都要调用f.close方法比较麻烦也容易忘,这里用with优化一下:
with open(“E:githubprojectSource-codeasisileest.txt”, mode=’r’) as f:
   pass
这里f就相当于打开了文件,但是此时并没有读取文件,即没有把文件放到内存中,f有很多内置方法,比较常用的是f.write()
这里我们使用fwrite来实现文件的复制:
with open(“E:githubprojectSource-codeasisileest.txt”, mode=’r’) as f:
   contents = f.read()
   with open(“E:githubprojectSource-codeasisileest_bak.txt”, mode=’w’) as f_bak:
       f_bak.write(contents)
但是这个方法每次都要写,所以我们用个函数把文件名封装进进去.
def cp(path):
   with open(path, ‘r’) as f:
       data = f.read()
       filename = path[0:path.rindex(“.”)]  # 通过rindex方法取得.之前的字符串(即文件名)
       ext = path[path.rindex(“.”):]  # 通过rindex方法取得.之后的字符串(即文件后缀)
       with open(“%s_bak%s” % (filename, ext), ‘w’) as f_bak:  # 新建文件名_bak的文件打开并操作
           f_bak.write(data)

path = “E:githubprojectSource-codeasisileest.txt”
path = path.replace(“”, “/”)  # 将字符串中含的转换为/,避免出现特殊字符转换错误的问题

path = ‘/’.join(path.split(‘’)) #与上方法类似,但是还无法转换特殊字符…

cp(path)
目前还没解决windows中文件名加路径组合成了特殊字符的问题
我们调用read方法的时候会将文件写入内存,但是如果我们要复制一个很大的文件,比如有10个G的时候怎么办呢,
python文件操作有个指针的说法,即当我们read到某处的时候,指针就会指到read的地方,当我们read()的时候,文件就指向了末尾,当read(100),指针即指向100,下次read再从此处读取,f.seek(0, 0)即将指针回到初始位置,我们可以利用指针来多次读取实现大文件的复制:

def cp(path):     filename = path[0:path.rindex(“.”)]  # 通过rindex方法取得.之前的字符串(即文件名)     ext = path[path.rindex(“.”):]  # 通过rindex方法取得.之后的字符串(即文件后缀)     with open(path, ‘r’) as f, open(“%s_bak%s” % (filename, ext), ‘a’) as f_bak:         while True:             data = f.read(1024)             print(data)             f_bak.write(data)             if len(data) == 0:                 breakpath = “E:githubprojectSource-codeasisileest.txt” path = path.replace(“”, “/”)  # 将字符串中含的转换为/,避免出现特殊字符转换错误的问题

登录后复制登录后复制

path = ‘/’.join(path.split(‘’)) #与上方法类似,但是还无法转换特殊字符…

cp(path)

这篇文章主要介绍了python操作文件,以及简单的复制备份.
1.open函数
python中一切皆对象,所以正常我们打开一个文件的过程是
1.选中文件-打开文件-编辑,复制,删除等操作-关闭文件
放到python中用代码实现就是:
f = open(file, mode=’r’, buffering=none, encoding=none, errors=none, newline=none, closefd=true):
f.close()
其中file是文件的绝对路径加文件名,mode是文件读取方式,默认为r即只读方式,后面的选填
mode在源码的解释为

立即学习“Python免费学习笔记(深入)”;

‘r’       open for reading (default) ‘w’       open for writing, truncating the file first ‘x’       create a new file and open it for writing ‘a’       open for writing, appending to the end of the file if it exists ‘b’       binary mode ‘t’       text mode (default) ‘+’       open a disk file for updating (reading and writing) ‘U’       universal newline mode (deprecated)

登录后复制登录后复制

建议大家看源码:翻译过来就是:
r   以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb  以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+  打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w   打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb  以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a   打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
这里我们每次打开file都要调用f.close方法比较麻烦也容易忘,这里用with优化一下:
with open(“E:githubprojectSource-codeasisileest.txt”, mode=’r’) as f:
   pass
这里f就相当于打开了文件,但是此时并没有读取文件,即没有把文件放到内存中,f有很多内置方法,比较常用的是f.write()
这里我们使用fwrite来实现文件的复制:

with open(“E:githubprojectSource-codeasisileest.txt”, mode=’r’) as f:     contents = f.read()     with open(“E:githubprojectSource-codeasisileest_bak.txt”, mode=’w’) as f_bak:         f_bak.write(contents) 但是这个方法每次都要写,所以我们用个函数把文件名封装进进去. def cp(path):     with open(path, ‘r’) as f:         data = f.read()         filename = path[0:path.rindex(“.”)]  # 通过rindex方法取得.之前的字符串(即文件名)         ext = path[path.rindex(“.”):]  # 通过rindex方法取得.之后的字符串(即文件后缀)         with open(“%s_bak%s” % (filename, ext), ‘w’) as f_bak:  # 新建文件名_bak的文件打开并操作             f_bak.write(data)path = “E:githubprojectSource-codeasisileest.txt” path = path.replace(“”, “/”)  # 将字符串中含的转换为/,避免出现特殊字符转换错误的问题

登录后复制

path = ‘/’.join(path.split(‘’)) #与上方法类似,但是还无法转换特殊字符…

cp(path)
目前还没解决windows中文件名加路径组合成了特殊字符的问题
我们调用read方法的时候会将文件写入内存,但是如果我们要复制一个很大的文件,比如有10个G的时候怎么办呢,
python文件操作有个指针的说法,即当我们read到某处的时候,指针就会指到read的地方,当我们read()的时候,文件就指向了末尾,当read(100),指针即指向100,下次read再从此处读取,f.seek(0, 0)即将指针回到初始位置,我们可以利用指针来多次读取实现大文件的复制:

def cp(path):     filename = path[0:path.rindex(“.”)]  # 通过rindex方法取得.之前的字符串(即文件名)     ext = path[path.rindex(“.”):]  # 通过rindex方法取得.之后的字符串(即文件后缀)     with open(path, ‘r’) as f, open(“%s_bak%s” % (filename, ext), ‘a’) as f_bak:         while True:             data = f.read(1024)             print(data)             f_bak.write(data)             if len(data) == 0:                 breakpath = “E:githubprojectSource-codeasisileest.txt” path = path.replace(“”, “/”)  # 将字符串中含的转换为/,避免出现特殊字符转换错误的问题

登录后复制登录后复制

path = ‘/’.join(path.split(‘’)) #与上方法类似,但是还无法转换特殊字符…

cp(path)

相关推荐:

Python 操作 MySQL 的正确姿势

以上就是python操作文件方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2265465.html

(0)
上一篇 2025年2月27日 08:43:47
下一篇 2025年2月25日 15:59:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Linux环境使用pdb调试python的方法

    pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令。        pd…

    编程技术 2025年2月27日
    200
  • vscode无法调试python怎么解决

    本文主要和大家分享vscode无法调试python怎么解决,希望能帮助到大家。 vscode无法调试python问题 提示调试适配器出错 1、保证已安装python调试插件,并升级到最新版本。 2、查看Python版本,升级到最新版本。 3…

    编程技术 2025年2月27日
    200
  • Python语法基础详解

    本文主要和大家分享python语法基础详解,希望能帮助到大家。 Python注释 ”’多行注释”’井号单行注释 登录后复制 python2在文件中存在中文的情况下,必须加以理(两种方式) 在文件头加上#coding=utf-8 在文件头…

    编程技术 2025年2月27日
    200
  • python编程的一些习惯

    本文主要和大家分享python编程的一些习惯,主要以代码的方式和大家讲解,希望能帮助到大家。 1、写好程序文档(格式、自动缩进(vim设置行宽和autoindent)、注释)如下形式: 2、尽量精简代码: 如     可以写成: retur…

    2025年2月27日
    100
  • python动态爬虫的实例分享

    本文主要和大家分享python动态爬虫的实例分享,用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字。如下所示: #encoding=utf-8 登录后复制 imp…

    2025年2月27日 编程技术
    200
  • Python解析JSON的实例分享

    本文主要和大家分享Python解析JSON的实例,主要以代码的形式和大家讲解,希望能帮助到大家 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。Python 使用 JSON 函…

    编程技术 2025年2月27日
    200
  • Python迭代模式实例详解

    本文主要和大家分享python迭代模式实例详解,主要以代码的形式和大家分享,希望能帮助到大家。 # -*- coding: utf-8 -*-“””Created on Thu Mar 29 11:43:05 2018@author: mz…

    编程技术 2025年2月27日
    200
  • python获取人脸的代码分享

    本文主要和大家分享python获取人脸的代码分享,希望大家根据本文能完成python获取人脸的功能。 usage:python   getface.py     src       out # -*- codeing: utf-8 -*-i…

    编程技术 2025年2月27日
    200
  • Python元组的知识详解

    本文主要和大家分享Python元组的知识详解没希望能帮助到大家。 1、Python的元组与列表类,不同之处:     a、元组的元素不能修改,列表可以。     b、元组使用小括号,列表使用方括号。 2、元组创建很简单,只需要在括号中添加元…

    编程技术 2025年2月27日
    200
  • Python实现管理站点的方法

    本文主要和大家分型分享Python实现管理站点的方法,主要以代码的方式和大家讲解,希望能帮助到大家。 一、django后台管理页面 Django内置了后台管理页面,只需要配置一下就可以使用,这免除了开发者在开发完站点之后还要去做一个后台管理…

    2025年2月27日
    200

发表回复

登录后才能评论