python3: 文件与IO
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的更多相关文章
- PythonCookBook笔记——文件与IO
文件与IO 所有的程序都要处理输入与输出,涉及到文本.二进制文件.文件编码和对文件名.目录的操作. 读写文本数据 需要读写各种不同编码的文本数据,使用rt模式的open()函数. 该读写操作使用系统默 ...
- node源码详解(七) —— 文件异步io、线程池【互斥锁、条件变量、管道、事件对象】
本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource7 本博客同步在https://cnodejs.o ...
- 文件和IO流
摘要:本文主要介绍了Java的文件处理以及常用的IO流操作. 文件操作 概念 File是数据源(保存数据的地方)的一种,可以表示一个文件,也可以表示一个文件目录. File类只能对文件和文件夹进行创建 ...
- 将 Python3 文件打包成 exe 文件
我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...
- Atitit.跨语言 文件夹与文件的io操作集合 草案
Atitit.跨语言 文件夹与文件的io操作集合 草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...
- python系列十四:Python3 文件
#!/usr/bin/python #Python3 文件 from urllib import requestimport pprint,pickle'''读和写文件open() 将会返回一个 fi ...
- 提高生产力:文件和IO操作(ApacheCommonsIO-汉化分享)
复制.移动.删除.比较.监控.文件读写 等文件和IO操作是编程中比较常用的功能. 幸运的是,Apache Commons IO等开源组件已经帮我们实现了. 我们可以不用重复 ...
- 【Go】使用压缩文件优化io (二)
原文链接: https://blog.thinkeridea.com/201907/go/compress_file_io_optimization2.html 上一篇文章<使用压缩文件优化io ...
- linux系统编程之文件与io(四)
今天继续学习文件与io,主要是学习文件共享及文件.复制文件描述符,有点抽象,主要是概念上的理解,但是很重要,下面一一来分解: 文件共享: 回顾一下,在linux系统调用中,是通过文件描述符来访问文件的 ...
随机推荐
- 使用Visual Studio 调试断点不起作用的问题解决办法 调试Revit CAD 不能进入断点
随着Visual Studio 2010正式版的发布,相信不少人都像我一样升级到了Visual Studio 2010.那么您在使用VS2010在AutoCAD,Map 3D或Revit的.net应用 ...
- 微信支付 统一下单 字段 body 为中文时 报【签名错误】解决方案(C# SDK)
方案一 如果你是从微信支付官网下载的 .NET C#[微信支付]API对应的SDK 调用示例 查看源码,会发现这个SDK中的 WxPayData 的类的 CalcHMACSHA256Hash 签名方法 ...
- swagger2的使用
springboot项目里怎么使用swagger2? 1.maven依赖 <dependency> <groupId>io.springfox</groupId> ...
- Fibonacci(矩阵)
Fibonacci Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Descrip ...
- 吉哥系列故事——临时工计划(dp)
吉哥系列故事——临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- 关于chrome 插件PageMonitor 安装及使用步骤
首先是安装: 第一步:打开谷歌浏览器的设置界面(如果没有谷歌浏览器需要下载安装下) 然后 点击左侧扩展程序:出现如下图 然后把附件中Page_Monitor_Chrome.crx文件托到扩展程序界面, ...
- Vue: ES6常用语法
ES6 模板字符串: ~ ${变量名}~ <div id="app"></div> <script> /* 找到对应id */ let ite ...
- cf1102F. Elongated Matrix(状压dp)
题意 题目链接 Sol \(n \leqslant 16\)可以想到状压 我们可以预处理出任意两行之间每列的最小值以及相邻两列的最小值 然后枚举一个起点,\(f[sta][i]\)表示走过了\(sta ...
- js 函数中形参与实参的关系
函数中形参与实参的关系 对于形参和实参的定义,在 权威指南中有着明确的定义.但是,我们更在意的是它们之间的关系,到底形参会不会影响到实参? 形参到底会不会影响到实参? 对于这个问题的答案,请先看以下两 ...
- Android--监听View的两个指头是放大和缩小
private double nLenStart = 0;//监听 WebView所用手势 @Override public boolean onTouch(View v, MotionEvent e ...