❤️💕💕
python
是一种动态的解释形语言,由于python
的普遍性,学会python
能更快的解决问题,以及学习其他的知识。Myblog:http://nsddd.top
[TOC]
文件处理几乎是所有编程语言都非常重要的一个环节,学会文件处理能解决我们生活中很多的问题。
Python 有几个函数用于创建、读取、更新和删除文件。
在 Python 中处理文件的关键函数是 open()
函数。
该open()
函数有两个参数; 文件名和模式。
打开文件有四种不同的方法(模式):
"r"
- 读取 - 默认值。打开文件进行读取,如果文件不存在则出错
"a"
- Append - 打开一个文件进行追加,如果文件不存在则创建该文件
"w"
- 写入 - 打开文件进行写入,如果文件不存在则创建文件
"x"
- 创建 - 创建指定文件,如果文件存在则返回错误
此外,您可以指定文件是否应作为二进制或文本模式处理
"t"
- 文本 - 默认值。文本模式
"b"
- 二进制 - 二进制模式(例如图像)
In [7]: ls
12306/ dist/ studentxj_TWY5CE.zip*
1撸代码形式学python/ pythonProject/ venv/
a.py socket/ 游戏.spec
btp2p/ studentxj/
build/ studentxj2/
In [8]: open("a.py")
Out[8]: <_io.TextIOWrapper name='a.py' mode='r' encoding='UTF-8'>
In [9]: !cat a.py
from socket import *
# 要监听的端口号
serverPort = 8080
# AF_INEF指定了IPv4 SOCK_DGRAM指定了UDP协议
serverSocket = socket(AF_INEF,SOCK_DGRAM)
serverSocket.bind('',serverPort)
print "Ready..."
while True:
message,clientAddress = serverPort.recvfrom(2048)
modifiedMessage = message.upper() # 全部转为大写
serverSocket.sendto(modifiedMessage, clientAddress)
上面的代码和下面的代码含义相同:
open("a.py","rt")因为
"r"
for read 和"t"
for text 是默认值,所以不需要指定它们。
有一点需要注意,就是在ipython中如果要读取文件的话,要用print
打印出来
In [30]: a = open("a.py","rt")
In [31]: a.read()
默认情况下,该read()
方法返回整个文本,但您也可以指定要返回的字符数:
返回文件的前 5 个字符:
a = open("a.py","r")
print(a.read(5))
a = open("a.py","r")
print(a.readline())
## 再返回一行
print(f.readline())
In [39]: a = open("a.py","r")
...: print(a.readline(3))
fro
In [40]: # 遍历文件
In [41]: for x in a:
...: print(x)
...:
打开了后关闭文件是一个好习惯
a.close()
要写入现有文件,必须向 open()
函数添加参数:
"a"
- 追加 - 将追加到文件的末尾
"w"
- 写入 - 将覆盖任何现有内容
为了方便测试,我们在ipython
中新建了一个文件,并且管道导入hello word
In [42]: a.close()
In [43]: ! echo "hello-word" >> text.txt
In [45]: a = open("text.txt","rt")
In [46]: a.read()
Out[46]: 'hello-word\n'
我们追加:假如生活欺骗了你
n [45]: a = open("text.txt","rt")
In [46]: a.read()
Out[46]: 'hello-word\n'
In [47]: a = open("text.txt","a")
In [48]: a.write("假如生活欺骗了你")
Out[48]: 8
In [49]: a.close()
In [50]: a = open("text.txt","rt")
In [51]: a.read()
Out[51]: 'hello-word\n假如生活欺骗了你'
或者我们可以覆盖掉以前的内容
In [53]: a = open("text.txt","w")
In [54]: a.write("假如生活欺骗了你")
Out[54]: 8
In [55]: a.close()
In [56]: a = open("text.txt","r")
In [57]: a.read()
Out[57]: '假如生活欺骗了你'
当然最后不要忘记了关闭文件!
要在 Python 中创建新文件,请使用open()
带有以下参数之一的方法:
"x"
- 创建 - 将创建一个文件,如果文件存在则返回错误
"a"
- Append - 如果指定的文件不存在,将创建一个文件
"w"
- 写入 - 如果指定的文件不存在,将创建一个文件
创建一个名为“myfile.txt”的文件:
f = open("myfile.txt", "x")
如果文件不存在,则创建一个新文件:
f = open("myfile.txt", "w")
要删除文件,您必须导入 OS 模块,并运行其 os.remove()
功能:
import os
为了避免错误,你需要在删除文件之前检查文件是否存在
os.path.exists("text.txt")
可以判断文件或者文件夹是否存在
In [62]: f = open("text.txt","x")
In [63]: ls text.txt
text.txt
In [64]: if os.path.exists("text.txt"):
...: os.remove("text.txt")
...: else:
...: print("这个文件不存在")
...:
In [65]: os.path.exists("text.txt")
Out[65]: False
os.mkdir
创建文件夹
甚至可以创建多级文件夹,或许更加常用os.makedirs(path)
In [65]: os.path.exists("text.txt")
Out[65]: False
In [66]: os.mkdir("text")
In [67]: !ls -al text/
total 8
drwxr-xr-x 2 root root 4096 Sep 20 15:11 .
drwxr-xr-x 15 root root 4096 Sep 20 15:11 ..
要删除整个文件夹,请使用以下os.rmdir()
方法:
In [68]: os.rmdir("text/")
In [69]: !ls -al text/
ls: cannot access 'text/': No such file or directory
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©