python文件操作

简介:

文件操作流程


文件操作流程

1.打开文件,得到文件句柄并赋值给一个变量

2.通过句柄对文件进行操作

3.关闭文件


最基本的打开,只能阅读,不能操作.

1
2
3
data  =  open ( "file" ,encoding = "utf-8" ).read()
print (data)
print ( type (data))         #字符串格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
=  open ( "file" , "r" ,encoding = "utf-8" )        文件句柄赋值给f
data  =  f.read()
data2  =  f.read()             当这里读取时,python将从上次data读取的最后开始读取,也就是什么也没有。
 
r 读取文件         不能写;
w 创建一个文件     不能读;
a 追加内容         不覆盖文件,不能读取。
 
f.read()             阅读
f.write()            写文件
 
注意:
 
U表示在读取时,可以将\r\n自动替换成\n(与r或r + 模式同使用)
     rU
     r + U
b表示处理二进制文件(如:FTP发送上传文件,linux可忽略,windows处理二进制文件时需要标注)

读取前五行

1
2
3
4
5
6
7
8
  方法一、
   =  open ( "file" , "r" ,encoding = "utf-8" )
   print (f.readline())
   print (f.readline())
   print (f.readline())
   print (f.readline())
   print (f.readline())
   f.close()
1
2
3
4
5
方法二、
   =  open ( "file" , "r" ,encoding = "utf-8" )
   for  in  range ( 5 ):
       print (f.readline())
   f.close()

第五行不打印

1
2
3
4
f.readlines()        是一个列表,
   =  open ( "file" , "r" ,encoding = "utf-8" )
   for  in  f.readlines():
       print (i.strip())         每行后面默认有一个换行符,用strip去掉;
1
2
3
4
5
6
7
方法一、
   =  open ( "file" , "r" ,encoding = "utf-8" )
   for  index,i  in  enumerate (f.readlines()):
       if  index  = =  4 :
           print ( "------分割线--------" )
           continue
       print (i.strip())
1
2
3
4
5
6
7
8
9
10
方法二、
   =  open ( "file" , "r" ,encoding = "utf-8" )
   count  =  0
   for  in  f:              f已经成为一个迭代器
       if  count  = =  4 :
           print ( "------分割线-------" )
           count  + =  1
           continue          结束本次循环,进行下一次循环
       print (i.strip())
       count  + =  1

文件方法:

f = open("file","r",encoding="utf-8")

查看当前指针位置

1
2
3
print (f.tell())
print (f.readline())
print (f.tell())

指针回到文件开头

1
2
f.seek( 0 )
   print (f.tell())

查看文件编码

1
print (f.encoding)

做异常处理 f.errors


查看是不是一个终端设备

1
print (f.isatty())

判断光标是否可以移动,可以True 否则False

1
print (f.seekable())

判断文件是否可读

1
print (f.readable())

判断文件是否可写

1
print (f.writable())


强制刷新;用于实时将写的数据写到硬盘上;

1
print (f.flush())

flush 事例进度条

1
2
3
4
5
6
7
import  sys,time
     for  in  range ( 100 ):
         sys.stdout.write( " " )
   for  in  range ( 100 ):
       sys.stdout.write( " " )
       sys.stdout.flush()
       time.sleep( 0.1 )


判断文件是否关闭

1
print (f.closed)

截断

1
2
3
=  open ( "file" , "a" ,encoding = "utf-8" )
   f.truncate()             不加参数清空文件
   f.truncate( 10 )           从文件开始截断 10 个字节

文件读写模式打开(读和追加写)

1
2
3
4
5
=  open ( "file" , "r+" ,encoding = "utf-8" )
   print (f.readline())
   f.write( "===============" )
   print (f.readline())
   f.close()

文件写读模式打开(创建一个新文件写和读,然后在追加写。)

1
2
3
4
5
6
7
8
9
10
=  open ( "file" , "w+" ,encoding = "utf-8" )
   print (f.readline())
   f.write( "===============\n" )
   f.write( "===============\n" )
   print (f.seek( 10 ))
   print (f.readline())
   f.write( "+++++++++++++++\n" )
   print (f.seek( 10 ))
   print (f.readline())
   f.close()

文件追加读写模式打开(可以追加写和读)

1
2
3
4
5
6
7
8
9
10
11
=  open ( "file" , "a+" ,encoding = "utf-8" )
   print (f.tell())
   print (f.readline())
   f.write( "===============\n" )
   f.write( "===============\n" )
   print (f.seek( 10 ))
   print (f.readline())
   f.write( "+++++++++++++++\n" )
   print (f.seek( 10 ))
   print (f.readline())
   f.close()

文件二进制编码方式读;应用于网络传输

1
2
=  open ( "file" , "rb" )
print (f.readline())

文件二进制编码方式写;应用于网络传输

1
2
3
=  open ( "file" , "wb" )
print (f.write( "hhhhhhh" .encode()))       默认是utf - 8 模式
f.close()

文件二进制编码方式追加;应用于网络传输

1
2
3
=  open ( "file" , "ab" )
print (f.write( "hhhhhhh" .encode()))       默认是utf - 8 模式
f.close()

文件修改

1.全部加载到内存里,重新写到文件里

2.修改后,写在另一个文件里

1
2
3
4
5
6
7
8
9
=  open ( "file" , "r" ,encoding = "utf-8" )
f2  =  open ( "file2" , "w" ,encoding = "utf-8" )
 
for  in  f:
     if  "2222"  in  i:
         =  i.replace( "2222" , "BBBB" )           #i.replace替换功能
     f2.write(i)
f.close()
f2.close()

文件操作自动关闭with

特点:自动关闭文件。

为了避免打开文件后忘记关闭,可以通过管理上下文。

1
2
例如:with  open ( "file" , "r" )as f:
           print (f.readline())


python2.7以后可以同时打开多个文件。

1
2
3
4
5
6
with  open ( "file" , "r" ) as f,\
       open ( "file2" , "r" ) as f2:
     for  in  f:
         print (i.strip())
     for  i2  in  f2:
         print (i2.strip())

(python官方要求:一行代码不要超过80个代码;)






     本文转自506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/1945833,如需转载请自行联系原作者


相关文章
|
3月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1122 2
|
2月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
5月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
248 72
|
4月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
177 0
|
5月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
5月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
5月前
|
移动开发 安全 Linux
Python文件操作的"保险箱":with语句深度实战指南
本文深入解析Python中`with`语句的原理与高级应用,通过“保险箱”类比,形象展示资源管理机制。从上下文管理协议到实战场景,涵盖文件、数据库、网络等多种资源的高效安全处理方式,助你写出更优雅、可靠的代码。
149 1
|
5月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
1114 0
|
6月前
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
151 4
|
5月前
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
423 0

推荐镜像

更多