python 3.6中使用open函数遇见的问题
打开文件:
标准函数是:
open(filename,mode=’r’,buffering=-1,encoding=None, errors=None, newline=None, closefd=True, opener=None)
其中 filename是文件的路径名,mode默认为r
例子:
f=open("C:\Users\C\Desktop\project\package1\__init__.py",'r')
输出:
原因是python表述不同于Windows,C:\\,双斜杠是对的。即:
也可以:
f=open("c://Users/C/Desktop/project/package1/__init__.py")
还有一个问题是可能路径的格式没法识别,例如:
f=open("C:\\USers\butterfly\Desktop\aaa.py")
输出是:
OSError: [Errno 22] Invalid argument:'C:\\Users\x08utterfly\Desktop\x07aa.py'
这种情况需要改变路径了,因为路径中带特殊字符。我改成
f=open("E://Program Files/360/test.py")
print(f)
输出:
<_io.TextIOWrapper name='E://Program Files/360/test.py' mode='r' encoding='cp936'>
说明正常
通过f.readlines()得到各行数据
f.readlines():
出现问题:
1)、首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’);
(2)、若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’);
(3)、若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:open(‘1.txt’,encoding=’gb18030’,errors=‘ignore’);
(4)、还有一种常见解决方法为open(‘1.txt’).read().decode(‘gb18030’,’ignore’)
根据
我用两个电脑分别实现,一个成功,另一个未成功,然后将未成功的idle关闭,重新打开
成功了,很郁闷。
open(filename,mode='w+'):
当如此打开文件,且文件不存在,则会自动创建这个文件,为空
实时出错,find 和x0cind
换个名字:
:
read()和write()函数:
如果open()函数选择的是mode='r',那么只可以读,而不可以写。如果选择'w'模式,只能写不能读(接到上面):
读或者写结束后,用g.close()关闭文件
发现一个点:最初的时候,看见别人代码里有路径不是很理解,如同最初不能明白加编码方式
#!\C:\Users\C\Desktop\project\package1
# -*- coding:utf-8 -*-
import os
f=open("tx3.py",'w')
os.mkdir('wrap1')
创建的python文件将会在\C:\Users\C\Desktop\project\package1\目录下(目录就是文件夹),最后一个语句创建的目录在package1目录下.最终发现,os.mkdir()函数生成的目录是和前面的创建的文件是同目录。
读写同时运用的实例:
g.tell()#返回文件当前的位置,指针位置
g.readline(size)#读size大小,同时指针后移size位,没有size默认读完本行
g.readlines()#读取所有,指针后移到末尾
g.read(size)#读取给定size,若未给或者为负,则返回所有值
遇见最多的问题还是创建文件返回[Errno22]:
最常用的方法是把单斜杠变成双斜杠。哪里出现问题哪里用双斜杠
参考:
Python文件I/O模块,菜鸟教程:点击打开链接
python 3.6中使用open函数遇见的问题相关推荐
- python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)
python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组.使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank) 目录
- python使用matplotlib中的errorbar函数可视化误差条、并自定义数据点标记、数据点大小、数据点颜色、数据点边缘颜色、误差棒颜色、误差棒线条宽度、误差棒边界线长度、误差棒边界线厚度等
python使用matplotlib中的errorbar函数可视化误差条.并自定义数据点标记.数据点大小.数据点颜色.数据点边缘颜色.误差棒颜色.误差棒线条宽度.误差棒边界线长度.误差棒边界线厚度等 ...
- Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战
Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战 目录 Python使用numpy中的hstack函数水平堆叠(horizontally stac ...
- python使用pandas中的to_json函数将dataframe数据写入json文件中
python使用pandas中的to_json函数将dataframe数据写入json文件中 目录 python使用pandas中的to_json函数将dataframe数据写入json文件中 #导入 ...
- python开发_python中的range()函数
python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...
- python3语法错误python_[大数据]Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因 - 码姐姐找文...
在安装了最新版本的Python 3.x版本之后, 去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误: SyntaxErro ...
- 【Python】Pandas中的宝藏函数-applymap
applymap的用法比较简单,会对DataFrame中的每个单元格执行指定函数的操作,虽然用途不如apply广泛,但在某些场合下还是非常有用的. applymap()是与map()方法相对应的专属于 ...
- python实现Matlab中的circshift函数
circshift是Matlab中矩阵循环移位函数,具体使用参照该链接. 但是python中并没有封装好的该函数,因此需要自己实现. 思路:将矩阵分为两部分,然后按照自己的需要堆叠在一起就可以了. n ...
- python vlookup 模糊_如何用python写excel中的vlookup函数?
1.背景 Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用.但是你可能会注意到,Excel 一旦数据量过大,打开都费劲了,何况打开后,你还要输入公式计算,就更费劲了,此时 ...
最新文章
- CSE 3100 Systems Programming
- OAuth 2.0攻击面与案例总结
- 链表list(链式存储结构实现)_VOL.2 如何在python中实现链式存储结构
- (0061)iOS开发之iPad开发:UISplitViewController分割视图控制器
- 构建乘积数组(剑指offer)
- java 反射访问静态方法_如何使用反射(Java)调用私有静态方法?
- CDH- Hive HWI 配置
- ubunut安装分区建议
- C ++ 类 | 类与数组(Array)_4
- 在教学中利用计算机软件,计算机软件技术教学方法研究
- java 方法详解_Java方法详解
- 在android 采用 android junit test 测试注意
- VSCode解决中文乱码问题最详解
- 人脸识别之数据库存取
- 怎么检查APP是否存在用户信息数据泄露漏洞
- Safari打开官网自动打开app
- 简约卡通双十一营销策划PPT模版
- 身份证号码前6位表示的地区对照表
- GlobalSign证书有哪些基本好处
- 你了解什么是Web服务器吗?
热门文章
- 在Unity中实现屏幕空间反射Screen Space Reflection(2)
- 23亿美元大市场,NFV做好了准备吗?
- 从M个数中随机等可能的取出N个的问题
- 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
- 从程序设计、tqdm到lambda:python的“奇技淫巧”,让实现效率翻倍【科学计算类】
- js json 对象相互转换
- 为eclipse安装python、shell开发环境和SVN插件
- python 多线程笔记(2)-- 锁
- 从零开始学 iOS 开发的15条建议
- 串口发送图片VGA显示