1.读写文本数据

# Write chunks of text data
with open('somefile.txt', 'wt') as f:
f.write(text1) # Redirected print statement
with open('somefile.txt', 'wt') as f:
print(line1, file=f) '''
文件的读写操作默认使用系统编码,可以通过调用 sys.getdefaultencoding() 来得到。 在大多数机器上面都是utf-8编码
'''
f = open('sample.txt', 'rt', encoding='utf-8')

统一模式处理换行符。 这种模式下,在读取文本的时候,Python可以识别所有的普通换行符并将其转换为单个 \n 字符。 类似的,在输出时会将换行符 \n 转换为系统默认的换行符。 如果你不希望这种默认的处理方式,可以给 open() 函数传入参数 newline='' ,就像下面这样:

# Read with disabled newline translation
with open('somefile.txt', 'rt', newline='') as f:
...

2. 打印输出至文件

with open('d:/work/test.txt', 'wt') as f:
print('Hello World!', file=f)

3. 使用其他分隔符或行终止符打印

使用在 print() 函数中使用 sep 和 end 关键字参数,  改变默认的分隔符或者行尾符

>>> print('ACME', 50, 91.5)
ACME 50 91.5
>>> print('ACME', 50, 91.5, sep=',')
ACME,50,91.5
>>> print('ACME', 50, 91.5, sep=',', end='!!\n')
ACME,50,91.5!!
>>> #end参数也可以在输出中禁止换行。
>>> for i in range(3):
... print(i)
...
0
1
2 >>> for i in range(3):
... print(i, end=' ')
...
0 1 2 >>>
#str.join()也可以控制分隔符
>>> print(','.join(('ACME','','91.5')))
ACME,50,91.5
>>>
>>> row = ('ACME', 50, 91.5)
>>> print(','.join(row))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected str instance, int found
>>> print(','.join(str(x) for x in row))
ACME,50,91.5
>>> >>> print(*row, sep=',')
ACME,50,91.5
>>>

4. 读写字节文件(如:比如图片,声音文件等等)

5.文件不存在才能写入

6. 字符串IO操作

7.读写压缩文件

8.固定大小记录的文件迭代

9.读取二进制数据到可变缓冲区中[文件对象的readinto()]

和普通 read() 方法不同的是, readinto() 填充已存在的缓冲区而不是为新对象重新分配内存再返回它们。 因此,你可以使用它来避免大量的内存分配操作

11.文件路径名的操作[os.path]

12.测试文件是否存在

13.获取文件夹中的文件列表[os.listdir()]

pyfiles = [name for name in os.listdir('somedir')
if name.endswith('.py')]

对于文件名的匹配,你可能会考虑使用 glob 或 fnmatch 模块。比如:

import glob
pyfiles = glob.glob('somedir/*.py') from fnmatch import fnmatch
pyfiles = [name for name in os.listdir('somedir')
if fnmatch(name, '*.py')]

如果你还想获取目录中实体名列表的元信息,比如文件大小,修改时间等等, 你或许还需要使用到 os.path 模块中的函数或着 os.stat() 函数来收集数据。

14. 忽略文件名编码

python3: 文件与IO的更多相关文章

  1. PythonCookBook笔记——文件与IO

    文件与IO 所有的程序都要处理输入与输出,涉及到文本.二进制文件.文件编码和对文件名.目录的操作. 读写文本数据 需要读写各种不同编码的文本数据,使用rt模式的open()函数. 该读写操作使用系统默 ...

  2. node源码详解(七) —— 文件异步io、线程池【互斥锁、条件变量、管道、事件对象】

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource7 本博客同步在https://cnodejs.o ...

  3. 文件和IO流

    摘要:本文主要介绍了Java的文件处理以及常用的IO流操作. 文件操作 概念 File是数据源(保存数据的地方)的一种,可以表示一个文件,也可以表示一个文件目录. File类只能对文件和文件夹进行创建 ...

  4. 将 Python3 文件打包成 exe 文件

    我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...

  5. Atitit.跨语言  文件夹与文件的io操作集合  草案

    Atitit.跨语言  文件夹与文件的io操作集合  草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...

  6. python系列十四:Python3 文件

    #!/usr/bin/python #Python3 文件 from urllib import requestimport pprint,pickle'''读和写文件open() 将会返回一个 fi ...

  7. 提高生产力:文件和IO操作(ApacheCommonsIO-汉化分享)

    复制.移动.删除.比较.监控.文件读写 等文件和IO操作是编程中比较常用的功能.        幸运的是,Apache Commons IO等开源组件已经帮我们实现了.        我们可以不用重复 ...

  8. 【Go】使用压缩文件优化io (二)

    原文链接: https://blog.thinkeridea.com/201907/go/compress_file_io_optimization2.html 上一篇文章<使用压缩文件优化io ...

  9. linux系统编程之文件与io(四)

    今天继续学习文件与io,主要是学习文件共享及文件.复制文件描述符,有点抽象,主要是概念上的理解,但是很重要,下面一一来分解: 文件共享: 回顾一下,在linux系统调用中,是通过文件描述符来访问文件的 ...

随机推荐

  1. FineUI开源版(ASP.Net)初学手册

    女朋友鄙视我原创少... 1.下载 进入官方论坛:http://www.fineui.com/bbs/ 要用到下载源代码和空项目下载 http://fineui.codeplex.com/ http: ...

  2. 基于卷积神经网络的手写数字识别分类(Tensorflow)

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...

  3. WebForm 基础学习

    C/S   客户端应用程序(Client/Server)  客户端——服务器端 两种技术      WinForm       WPF                                 ...

  4. 无法将类型“System.Collections.Generic.List<anonymous type:string ClassID,string ClsssName>”隐式转换为“System.Collections.Generic.List<Ecology.Model.EnergyFlowGraph>”

    无法将类型“System.Collections.Generic.List<anonymous type:string ClassID,string ClsssName>”隐式转换为“Sy ...

  5. JAVA项目工具包集合

    本文包括工具的下载以及配置,持续更新中…… 1 JDK 官网:https://www.oracle.com 下载:https://www.oracle.com/technetwork/java/jav ...

  6. 整数对(hdu1271)找规律

    整数对 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...

  7. HDU6154

    CaoHaha's staff Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. WebForms开发方式以及优缺点,来源《ASP.NET MVC企业级实战》

    WebForms有以下3种开发方式 1.服务器端控件 2.一般处理程序+HTML静态页+Ajax 3.一般处理程序+HTML模板 WebForms的请求的是具体的某一个文件.具体的一个类,由客户端发送 ...

  9. java中获取系统变量

    System.getProperty("java.version") 用来获取系统变量.getProperty()这个方法是获取指定键指示的系统属性的.以下是通过System.ge ...

  10. 分布式Session一致性解决方案有哪些?

    1.使用cookie代替session(不安全,不推荐使用) 2.使用数据库存储session(效率低,不推荐使用) 3.使用nginx反向代理ip绑定方法,同一个ip只能在同一台服务器上进行访问(不 ...