python 8

Posted leonraw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 8相关的知识,希望对你有一定的参考价值。

一、文件操作初识

1.

path 文件路径 F:\文件.txt

encoding 编码方式 utf-8, gbk ...

mode 操作方式 只读,只写,读写,写读,追加...

f1 = open(rF:\文件.txt, encoding=utf-8, mode=r)
print(f1.read())
f1.close()

绝对路径:从根目录一直找到文件。

相对路径:从当前目录开始找到的文件。

2. r w a

读模式:

r 只读

rb 直接读bytes类型

f1 = open(世界和平.txt, mode=rb)
print(f1.read())
f1.close()

 

r+ 读写

r+b 直接对bytes类型进行读写

 

写模式:

w 只写 若没有该文件,则创建该文件。若存在该文件,则先删除该文件,再创建该文件。

f1 = open(r世界和平.txt, encoding=utf-8, mode=w)
f1.write(薛之谦的儿子)
f1.close()

 

wb 直接写入bytes类型

f1 = open(r世界和平.txt, mode=wb)
f1.write(薛之谦的儿子.encode(utf-8))
f1.close()

 

w+ 写读 

w+b bytes类型的写读

 

追加模式:

a 追加 若没有文件,创建文件写入内容,若有文件,直接在文件后面追加内容。

ab a+ a+b 一样。。

 

对于字母,数字,一些常见的特殊字符来说,gbk与utf-8都延用ASCII码的编写方式,所以相互之间可以通用。

二、文件的常见操作。

1..read()    .close()

常用的文件句柄:f1_obj,  f1_file, file, file_handle...

windows的默认编码方式为(当前国家的专属编码,中国为gbk)

Linux,macOS的默认编码方式为:utf-8

2.read(n)  读多少个xx  r模式下是按照字符读取,rb模式下是按照字节读取。

3.readline() 按行读取 将光标移到下行开头

4.readlines() 返回一个list,里边的元素分别是每一行

5.for循环读取,每次读一行

6.seek() 按照字节调整光标 当写入文件后,光标会移到最后,需要调整光标才能继续进行读取。

非文字数据的读与写,只能用bytes类型的相关操作。

7.readable() writeable() 判断是否可读可写

8.tell() 告诉光标的位置

9.truncate() 对原文件进行截取,只能在a模式下使用。以字节为单位。

三、文件的另一种操作方法

 

with open(rF:\世界和平.txt,encoding=utf-8, mode=r)as f1:
    print(f1.read())

这个命令在短时间内会自动关闭文件,但是如果在with op() as下再使用with open() as操作同一文件时,最好在前边手动关闭,因为同一文件无法被定义为不同句柄。

‘‘‘
1,打开原文件 old_file,将原内容读取到内存。
2,创建一个新文件new_file。
3,将原内容通过你改写形成新内容,写入到新文件。
4,将原文件删除。
5,将新文件重命名成原文件。
‘‘‘
#方法一,原文件内容不打,可以用此方法,但是此方法还是很low。
# import os
# with open(‘change‘, encoding=‘utf-8‘) as f1,\
#     open(‘change.bak‘, encoding=‘utf-8‘, mode=‘w‘) as f2:
#     old_content = f1.read()
#     new_content = old_content.replace(‘alex‘, ‘SB‘)
#     f2.write(new_content)
# os.remove(‘change‘)
# os.rename(‘change.bak‘, ‘change‘)
# 方法2
import os
with open(change, encoding=utf-8) as f1,    open(change.bak, encoding=utf-8, mode=w) as f2:
    for line in f1:
        new_line = line.replace(SB, alex)
        f2.write(new_line)
os.remove(change)
os.rename(change.bak, change)

 

以上是关于python 8的主要内容,如果未能解决你的问题,请参考以下文章

python 片段8

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段

VSCode自定义代码片段8——声明函数

Vscode for python ide配置

Xcode 8 Autocomplete Broken - 仅显示有限的用户代码片段 - 知道为啥吗?

常用python日期日志获取内容循环的代码片段