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():

出现问题:

python 3.6中使用open函数遇见的问题_第1张图片

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'模式,只能写不能读(接到上面):

python 3.6中使用open函数遇见的问题_第2张图片

读或者写结束后,用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()函数生成的目录是和前面的创建的文件是同目录。

读写同时运用的实例:

python 3.6中使用open函数遇见的问题_第3张图片

g.tell()#返回文件当前的位置,指针位置

g.readline(size)#读size大小,同时指针后移size位,没有size默认读完本行

g.readlines()#读取所有,指针后移到末尾

g.read(size)#读取给定size,若未给或者为负,则返回所有值

遇见最多的问题还是创建文件返回[Errno22]:

    最常用的方法是把单斜杠变成双斜杠。哪里出现问题哪里用双斜杠






      


参考:

Python文件I/O模块,菜鸟教程:点击打开链接

你可能感兴趣的:(python,learning)