文件和文件夹 · 计算机入门
保存一张照片后,它去了哪里?怎样再找到它?
课程目录为什么需要它
存储里放着成千上万的东西。文件和文件夹就是你(以及每个程序)把它们整理好、再找到它们的办法。
以后你的程序要按路径打开文件,Linux 课讲的也全是在文件夹之间走来走去。现在把这个想法弄懂,后面都会很轻松。
直觉理解
文件 File 是一份保存下来、有名字的东西:一张照片、一首歌、一份文档、一个程序。文件夹 Folder(也叫目录 Directory)是装文件和其他文件夹的容器。文件夹套文件夹,就形成了一棵树:
/ 最上层
└── Users
└── mia
├── Documents
│ └── cv.docx
└── Pictures
├── beach.jpg
└── 2024
└── cat.png要准确说出一个文件在哪儿,就写出它的路径 Path:从最上层一路到它经过的文件夹,用 / 隔开:
/Users/mia/Pictures/2024/cat.png
就像写信封上的地址,从国家一直写到门牌号。Windows 上的路径以盘符开头、用反斜杠,比如 C:\Users\mia\Pictures\cat.png,道理是一样的。
扩展名。最后一个点后面的部分说明这是什么文件:.jpg 和 .png 是图片,.mp3 是声音,.mp4 是视频,.pdf 和 .docx 是文档,.txt 是纯文本,.py 是 Python 程序。其实每个文件里面都只是字节,扩展名告诉程序该怎么读它们。
定义
文件 File
A file is a named collection of data kept in storage, such as a photo, a document or a program.文件是保存在存储里、有名字的一份数据,比如一张照片、一份文档或一个程序。
文件夹 Folder(目录 Directory)
A folder, or directory, is a container that holds files and other folders.文件夹(也叫目录)是装文件和其他文件夹的容器。
路径 Path
A path is the address of a file or folder: the folders from the top down to it, separated by slashes.路径是文件或文件夹的地址:从最上层一直到它经过的文件夹,用斜杠隔开。
示例
拼出一条路径
动手试试从最上层开始按顺序列出文件夹,最后是文件名。往列表里加一个文件夹(带引号,用逗号隔开),看看路径怎么变长。
folders = ["Users", "mia", "Pictures"] # change me 改这里
file = "cat.png"
path = ""
for name in folders:
path = path + "/" + name
path = path + "/" + file
print(path)- L1文件夹,从上往下。
["Users", "mia", "Pictures"] - L5每个文件夹前面加一个 /。
path = /Users - L5沿着树一层层往下。
path = /Users/mia/Pictures - L6文件名放在最后。
path = /Users/mia/Pictures/cat.png
把路径画成一棵树
动手试试反过来:在每个 / 处把路径切开,每一段往里缩进一层。换成你自己的路径试试。
path = "/Users/mia/Documents/school/report.docx" # change me 改这里
parts = path.split("/")[1:]
depth = 0
for part in parts[:-1]:
print(" " * depth + part + "/")
depth = depth + 1
print(" " * depth + parts[-1])- L2在每个 / 处切开。
Users | mia | Documents | school | report.docx - L5每个文件夹都比上一个缩进一层。
Users/ - L7文件在最后一个文件夹里面。
report.docx
这是什么文件?
动手试试这台机器只看扩展名,也就是最后一个点后面的部分。试试 song.mp3、notes.txt 或 game.exe。
name = "holiday.mp4" # change me 改这里
kinds = {"jpg": "a picture", "png": "a picture", "mp3": "sound",
"mp4": "a video", "txt": "plain text", "pdf": "a document",
"py": "a Python program"}
extension = name.split(".")[-1]
print(name, "is", kinds.get(extension, "a kind of file this machine doesn't know"))- L1文件名。
name = "holiday.mp4" - L5取最后一个点后面的部分。
extension = "mp4" - L6在表里查一查。
holiday.mp4 is a video
常见错误
改扩展名不等于转换格式
把 song.mp3 改名成 song.mp4,并不会把音乐变成视频,里面的字节还是原来的。这只会让程序搞不清该怎么打开它。
同名文件可以放在不同文件夹
/Users/mia/notes.txt 和 /Users/sam/notes.txt 是两个不同的文件:说明是哪个文件的是路径,而不只是名字。不过在同一个文件夹里,名字不能重复。
被隐藏的扩展名
很多电脑默认隐藏扩展名,photo.jpg 只显示成 photo。在文件管理器的设置里打开「显示文件扩展名」就能看到。
小测验
1. 在 /Users/mia/Music/song.mp3 里,song.mp3 直接放在哪个文件夹里?
查看答案
答案:C
紧挨在文件名前面的那个文件夹装着它:Music。mia 装着 Music,Users 装着 mia。
2. 哪个文件最可能是图片?
查看答案
答案:B
.jpg 是图片格式。.txt 是纯文本,.mp3 是声音。
3. 两个文件能都叫 notes.txt 吗?
查看答案
答案:B
在不同的文件夹里,它们的路径不同,计算机就分得清。放在同一个文件夹里就会冲突。
要点
- 文件是有名字的一份数据;文件夹装着文件和其他文件夹,形成一棵树。
- 像
/Users/mia/Pictures/cat.png这样的路径,准确说明了文件在哪里。 - 扩展名(
.jpg、.mp3、.pdf……)说明这是什么文件。
动手练习
3 道小练习:先想一想,再动手改一改看看结果,最后自己来一次。提交马上告诉你对不对。
- 想一想找出路径
这是一台电脑文件夹树的一部分:
/ └── home └── leo ├── games │ └── chess.py └── music └── rain.mp3rain.mp3的路径是什么? - 改一改照片挪地方了
Mia 在
Pictures里面新建了一个叫pets的文件夹,把cat.png挪了进去。改一改文件夹列表,让机器打印出新的路径:
/Users/mia/Pictures/pets/cat.png - 自己来写出路径
这是 Ana 的电脑:
/ └── Users └── ana ├── Desktop └── Documents └── 2025 └── taxes.pdf写出
taxes.pdf的完整路径。
本课术语
| 术语 | 中文 | 英文定义 |
|---|---|---|
| File | 文件 | A named piece of data kept in storage. |
| Folder (directory) | 文件夹(目录) | A container that holds files and other folders. |
| Path | 路径 | The address of a file: the folders from the top down to it, separated by slashes. |
| File extension | 扩展名 | The end of a file name after the last dot, such as .jpg, which says what kind of file it is. |