Python操作文件及其内容的常用方式
文章目录
- Python操作文件及其内容的常用方式
- 1:修改文件名
- 1.1:修改指定文件名
- 1.2:修改目录下的所有文件的文件名
- 2:读取文件
- 2.1:读取文件内容
- 2.1.1:按行读取
- 2.1.2:按字节单个字符读取内容
- 2.1.3:读取每行内容的指定内容
- 3:写入文件
- 3.1:编辑内容写入文件
- 3:编辑内容
其中包含了、使用python修改文件名,使用python读取文件内容,使用python写入文件内容,使用python修改每行的指定内容。
1:修改文件名
修改文件名分为两种方式,第一种,修改指定文件的文件名,第二种,修改指定目录下的所有文件的文件名。
1.1:修改指定文件名
# 修改指定文件的文件名
def rename():path = "/Users/liujinshuai/desktop/"file_name = "test.txt"my_file_name = "myfile.txt"os.rename(path + file_name, path + my_file_name)
该操作将原有的 test.txt 文件重命名为了新的 myfile.txt 文件。
1.2:修改目录下的所有文件的文件名
比如目录 /Users/liujinshuai/Desktop/files/ 下包含着这三个txt文件。
# 修改指定目录下的所有文件的文件名
def renamedir():i = 0path="/Users/liujinshuai/Desktop/files/"for filename in os.listdir(path):my_file_name ="hello" + str(i) + ".txt"file_source =path + filenamemy_file_name =path + my_file_nameos.rename(file_source, my_file_name)i += 1
执行过后,该目录下的文件的文件名将变为如下:
2:读取文件
2.1:读取文件内容
2.1.1:按行读取
# 读取文件内容
def readmsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'r')line = f.readline()while line:print(line)line = f.readline()f.close()
需要注意的是,要记得关闭文件操作,如 f.close()
除此之外,你还可以一次性获取所有行,以数组的形式访问指定行。
# 读取文件内容
def readmsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'r')line = f.readlines()print(line[0])f.close()
2.1.2:按字节单个字符读取内容
# 读取文件内容
def readmsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'r')read = f.read(1)print(read)f.close()
2.1.3:读取每行内容的指定内容
读取 第一行 的第一个字符:
# 读取文件内容
def readmsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'r')line = f.readlines()print(line[0][0])f.close()
3:写入文件
3.1:编辑内容写入文件
# 写入文件内容
def writemsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'w')f.write("hello world")f.close()
也可以一次性写入多条数据,首先需要使用一个数组来保存需要添加的数据。
# 写入文件内容
def writemsg():path = "/Users/liujinshuai/desktop/myfile.txt"msg = ["hello world\n", "hello world\n", "hello world"]f = open (path, 'w')f.writelines(msg)f.close()
3:编辑内容
比如更改文件的第一行的内容:
# 更改文件内容
def editmsg():path = "/Users/liujinshuai/desktop/myfile.txt"f = open (path, 'r')line = f.readlines()line[0] = "hello world anny!!!\n"w = open (path, 'w')w.writelines(line)w.close()f.close()
如果你想将 hello world anny!!!\n
更改为 Hello world anny!!!\n
你只需要将 line[0] = "hello world anny!!!\n"
更改为 line[0][0] = "H"
这步操作是将第一行的第一个字符改为 H