在Python中,文件操作可以通过内置的open()
函数来实现。open()
函数可以接受两个参数,第一个参数是文件的路径,第二个参数是打开文件的模式。
文件的路径可以是绝对路径或相对路径。绝对路径指的是文件的完整路径,包括文件所在的文件夹路径以及文件名。相对路径指的是相对于Python程序所在的文件夹的路径。
文件读取多种方式:
1、导入path便于处理,它直接将整个文件的内容作为一个字符串进行输出。适用于想要一次性查看整个文件的完整内容。
from pathlib import Path
path= Path('D:/1960-2019全球GDP数据.csv')
contents=path.read_text()
print(contents)
2、先将文件内容读取为一个字符串,然后通过 splitlines()
方法将其按行分割成一个列表,再通过循环逐行输出。这种方式适合于需要对文件的每一行进行单独处理或分析的情况。
from pathlib import Path
path= Path('D:/1960-2019全球GDP数据.csv')
contents=path.read_text()
lines=contents.splitlines()
for line in lines:
print(line)
文件打开模式
打开文件的模式有以下几种:
'r'
:以只读模式打开文件。如果文件不存在,会抛出FileNotFoundError
异常。'w'
:以写入模式打开文件。如果文件不存在,会创建一个新文件;如果文件已存在,会清空文件内容。不使用close(),则必须使用flush()方法才能将内容写入。'a'
:以追加模式打开文件。如果文件不存在,会创建一个新文件;如果文件已存在,会在文件末尾追加内容。'x'
:以独占模式创建文件。如果文件已存在,会抛出FileExistsError
异常。'b'
:以二进制模式打开文件。与其他模式组合使用,例如'rb'
表示以只读的二进制模式打开文件。
打开文件后,可以使用文件对象的方法来读取或写入文件内容。
以下是一些常用的文件操作示例:
# 打开文件并读取内容
file = open('file.txt', 'r')
content = file.read()
print(content)
file.close()
# 打开文件并写入内容
file = open('file.txt', 'w')
file.write('Hello, World!')
file.close()
# 打开文件并逐行读取内容
file = open('file.txt', 'r')
for line in file:
print(line)
file.close()
注意:在使用open()
函数打开文件后,最好使用close()
方法来关闭文件。如果不关闭文件,文件会一直被Python程序占用,无法对原文件进行重命名、删除等操作。为了避免忘记关闭文件,还可以使用with
语句来自动关闭文件。使用with
语句时,文件对象会在代码块执行完毕后自动关闭。
# 使用with语句来读取文件后自动关闭文件
with open('file.txt', 'r') as file:
content = file.read()
print(content)
文件读取操作练习
字符串拼接:
将记事本中的圆周率存储为一行新的完整字符串并打印输出。
运行效果图:
圆周.txt :
完整代码:
from pathlib import Path
path=Path('D:\圆周.txt')
contents=path.read_text()
lines=contents.splitlines()
new_string=''
for line in lines:
new_string+=line.lstrip() # 去除左端空格
print(new_string)
单词计数:
通过Windows的文本编辑器软件,将如下内容,复制并保存到:word.txt,文件可以存储在任意位置,通过文件读取操作,读取此文件,统计itheima单词出现的次数。
itheima itcast python
itheima python itcast
beijing shanghai itheima
shenzhen guangzhou itheima
wuhan hangzhou itheima
zhengzhou bigdata itheima
展示三种方法:
# 法一:把单词变成列表,再比对列表中的一个个单词
f=open('D:/word.txt','r',encoding='UTF-8')
count=0
content=f.read()
words_list=content.split()
print(words_list)
for word in words_list :
if word=='itheima':
count+=1
print(count)
f.close()
# 法二: 直接使用文件操作的统计单词数目方法count()
f=open('D:/word.txt','r',encoding='UTF-8')
content=f.read()
count=content.count('itheima')
print(count)
f.close()
# 法三 一行一行的读取文件按照空格进行划分
f=open('D:/word.txt','r',encoding='UTF-8')
count=0
for line in f:
line=line.strip() # 去除每个单词换行符和空格
words=line.split(' ') # 按照空格进行划分
for word in words:
if word =='itheima':
count+=1
print(count)
f.close()
文件备份操作
c将文件中的内容备份到另一个文件中并去除remarks为测试的员工,如下图。
代码展示:
fr=open('D:/原文件.txt','r',encoding='UTF-8')
fw=open('D:/新文件.txt.bak','w',encoding='UTF-8')
for line in fr:
line = line.strip() # 去除回车换行符
if line.split(',')[4] == '测试':# 按照逗号进行分割并判断第四个内容
continue
fw.write(line)
fw.write('\n') # 写入换行符
fr.close()
fw.close()