欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 3.6中使用open函数遇见的问题

程序员文章站 2024-02-22 12:12:23
...

打开文件:

标准函数是:

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 3.6中使用open函数遇见的问题

原因是python表述不同于Windows,C:\\,双斜杠是对的。即:

python 3.6中使用open函数遇见的问题

也可以:

 f=open("c://Users/C/Desktop/project/package1/__init__.py")

python 3.6中使用open函数遇见的问题

还有一个问题是可能路径的格式没法识别,例如:

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)、首先在打开文本的时候,设置其编码格式,如: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关闭,重新打开

python 3.6中使用open函数遇见的问题

成功了,很郁闷。

open(filename,mode='w+'):

当如此打开文件,且文件不存在,则会自动创建这个文件,为空

python 3.6中使用open函数遇见的问题

实时出错,find 和x0cind

换个名字:

python 3.6中使用open函数遇见的问题

read()和write()函数:

如果open()函数选择的是mode='r',那么只可以读,而不可以写。如果选择'w'模式,只能写不能读(接到上面):

python 3.6中使用open函数遇见的问题

读或者写结束后,用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函数遇见的问题

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

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

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

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

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

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






      


参考:

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

相关标签: python idle open