文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

读取和写入文件等操作是 Python 可以完成的最常见任务之一。无论是写入简单的文本文件,还是读取复杂的服务器日志,甚至分析原始字节数据,进行相关的处理操作,最终所有这些情况都需要读取或写入文件。

整套学习自学教程中应用的数据都是《三國志》、《真·三國無雙》系列游戏中的内容。

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

文件的基本概念

文件是一组用于存储数据的连续字节。这些数据以特定格式组织,可以是文本文件等简单的文件,也可以是可执行程序等复杂的文件。这些字节文件然后被翻译成二进制文件1,0 便于计算机进行处理。

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

文件包含三个部分:

  1. Header: 关于文件内容的元数据(文件名、大小、类型等)。
  2. Data: 由创建者或编辑者编写的文件内容。
  3. EOF 表示文件结束的特殊字符

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

数据表示的内容取决于所使用的格式规范通常由扩展名表示。例如扩展名为.jpg最有可能符合图形交换格式规范的文件但未必是图片文件。

扩展名有数百甚至数千个文件扩展名。这里介绍 .txt 和 .csv 扩展名。

文件路径

访问文件需要文件路径,文件路径由字符串组成。其中包括三个部分:

  1. 文件夹路径: 文件系统上的文件夹位置,后续文件夹由正斜杠 / (Unix) 或反斜杠 \ (Windows) 分隔。
  2. 文件名: 文件的实际名称。
  3. 扩展名: 文件路径的末尾以句点 ( .) 开头,用于指示文件类型。

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

行尾

行为可以追溯到摩尔斯电码时代,当时使用特定的符号来传达传输的结束或行的结束。

Windows 使用 CR+LF 字符来表示新行,而 Unix 和较新的 Mac 版本仅使用LF字符。这些符号都是不可见的,但是可以操作。

# windows
Hello World\r\n
Dynasty Warriors\r\n

字符编码

未来还会面临的一个字符数据编码的问题。两种最常见的编码是ASCIIUnicode格式。

  • ASCII 智能存储 128 个字符。
  • Unicode 最多可以包含 1,114,112 个字符。

在 Python 中打开和关闭文件

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

调用 open() 内置函数来完成,其中包含一个文件路径的文件关键参数。

File = open('data.txt')

调用 .close() 对打开的文件进行关闭。

file.close()

可以调用 with语句 在执行打开操作模块后自动进行关闭。

with open('data.txt', 'r') as f:
    .......

读写参数说明。

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

读写参数组合。

文件的扩展名最多只能有三个字符正确吗(文件的扩展名最多只能有三个字符对还是错)

文本文件类型

文本文件是您会遇到的最常见的文件。

# 打开方式举例
open('data.txt')
open('data.txt', 'r')
open('data.txt', 'w')

type(file)
<class '_io.TextIOWrapper'>

缓冲的二进制文件类型

# 打开方式举例
file = open('abc.txt', 'rb') # 读
type(file)
<class '_io.BufferedReader'>
file = open('abc.txt', 'wb') # 写
type(file)
<class '_io.BufferedWriter'>

原始文件类型

file = open('abc.txt', 'rb', buffering=0)
type(file)
<class '_io.FileIO'>

读写打开的文件

读取文件时可以调用的方法。

# size这最多从该行中读取多个字符。这一直持续到行尾,然后回绕。如果没有传递或传递参数None,-1则读取整行(或该行的其余部分)。
.readline(size=-1)  
# 这将从文件对象中读取剩余的行并将它们作为列表返回。
.readlines()    

.read(size=-1),size字节数从文件中读取。如果没有传递或传递参数None,-1则读取整个文件。

with open('data.txt', 'r') as f:
    print(f.read())
data data data
data data data
data data data

.readline(size=-1),从该行中读取多个字符。这一直持续到行尾,然后回绕。如果没有传递或传递参数None,-1则读取整行(或该行的其余部分)。

with open('data.txt', 'r') as f:
    print(f.readline(2))
data data data
data data data

.readlines(),这将从文件对象中读取剩余的行并将它们作为列表返回。

with open('data.txt', 'r') as f:
    print(f.readlines())
data data data
data data data
data data data

遍历文件中的每一行

.readline() 方法每次遍历一行。

with open('data.txt', 'r') as f:
    line = f.readline()
    while line != '':
        print(line, end='')
        line = f.readline()
data data data
data data data
data data data

.readlines() 方法返回一个列表,其中列表中的每个元素代表文件中的一行。

with open('data.txt', 'r') as f:
    for line in f.readlines():
        print(line, end='')
data data data
data data data
data data data

# 或者简化操作
with open('data.txt', 'r') as f:
    for line in f:
        print(line, end='')
data data data
data data data
data data data

文件的读写是相对的,方法和读取一样。

with open('data.txt', 'r') as f:
    lines = f.readlines()
    f.write(lines)

字节操作

使用字节字符串处理文件。这是通过将 'b' 字符添加到参数来完成的。

with open('data.jpg', 'rb') as f:
    print(f.readline())
b'\x89'
b'JPG'
b'\r\n'
b'\x1a'
b'\n'

创业项目群,学习操作 18个小项目,添加 微信:80709525  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.11in.com/14894.html