文件
作者 :cxw
摘要 :文件
目录
从文件中读取数据
1.读取一个文本文件的内容,
重新设置这些数据的格式并将其写入文件,
让浏览器能够显示这些内容。
2.要使用文本文件中的信息,首先需要将信息读取到内存中。
为此,你可以一次性读取文件的全部内容,
也可以以每次一行的方式逐步读取。
读取整个文件
'''创建一个文本文件,flile1s_num.txt'''
'''
3.1415926535
8979323846
2643383279
'''
#读取文件
# 代码所有:cxw
# 开发时间:2021/11/9 22:31
#打开并且读取flile1s_num.txt的数据,显示到屏幕上
with open("text_file/flile1s_num.txt") as file_object:
#要以任何方式使用文件,都要打开文件,访问。 open()接受打开文件的文件名
cotents=file_object.read() #file_object.read() 使用方法读取文件的内容
#read()方法读取时末尾会返回一个空字符串,显示出来就是一个空格,可使用rstrip()方法删除字符串末尾的空白
print(cotents)
print(cotents.rstrip())
#注解,as中的用法
'''
Python中as的三种用法
1.with...as...
第一种是和with结合使用,主要用于文件的读写操作,省去了关闭文件的麻烦。
2.导入模块起别名
第二种是导入模块是对模块进行重命名,也就是给模块起一个别名。
3.except结合使用
第三种是和except组合使用,将捕获到的异常对象赋值给except。
'''
文件路径
包括相对文件路径和绝对文件路径。绝对路径通常比行对路径更长
文件路径要正确且无勿
'''python_work下的文件夹text_files中去查找指定的.txt文件。
在Windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/):'''
'''
就目前而言,最简单的做法是,要么将数据文件存储在程序文件所在的目录,
要么将其存储在程序文件所在目录下的一个文件夹(如text_files)中。
'''
逐行读取
使用for 循环遍历实现
file_name="text_file/flile1s_num.txt"
with open(file_name) as file_ob:
for line in file_ob:
#文件对象是一个可迭代对象,使用for循环时每次迭代会把文件中的内容转换为字符串,打印遍历的结果
print(line)
创建一个包含文件各行内容的列表
#创建一个包含文件各行内容的列表
file_2="text_file/flile1s_num.txt"
with open(file_2) as file_num2:
num2=file_num2.readlines()
# file_name.readlines 表示的是从文件读取每一行,将其存储在一个列表中,在with代码块外,依然可以使用这个变量
num1=file_num2.readline()
#read.line 每次只读取一行,仅当没有足够内存时可以一次读取整个文件
print(num1)
for lines in num2:
print(lines.rstrip())
使用文件的内容
#使用文件的内容
file_3="text_file/flile1s_num.txt"
with open(file_3) as file_num3:
line=file_num3.readlines() #将文件存储为一个列表
pi_string=""
for lined in line:
pi_string+=lined.strip() #使用文件中的内容
print(pi_string)
print(len(pi_string))
print(type(pi_string))
文件中的读取和输出打印
# 代码所有:cxw
# 开发时间:2021/11/10 20:23
#读取文件打印三次
filename="text_file/learning knowledge.txt"
with open(filename) as files:
comtenes=files.read()
print(comtenes)
#读取整个文件
with open(filename) as f:
for i in f:
print(i.rstrip())
print("\n")
#遍历文件对象
with open(filename) as f1:
s=f1.readlines()
for i in s:
print(i.strip())
#将文件中各行存储在一个列表中,在with外代码快打印
文件的修改
with open(filename) as change:
message=change.read()
change_message=message.replace("python","c")
#replace()方法并不能永久性的将字符串中的字符替换,原始的字符串不会被更改,要赋值一个新变量
print(change_message)
#outcome
'''
In python you can use many num to text things
In python you can know many sss
In python you can jiao jia ijoiaxj
In c you can use many num to text things
In c you can know many sss
In c you can jiao jia ijoiaxj
'''
写入文件
保存数据的最简单方式是将其写入文件中
通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在
写入文件的方法
'''
【Python 文件使用方式标识详解】
1. r':默认值,表示从文件读取数据。
**2. 'w':表示要向文件写入数据,并截断以前的内容**
**3. 'a':表示要向文件写入数据,添加到当前内容尾部**
4. 'r+':表示对文件进行可读写操作**(删除以前的所有数据)**
5. **'r+a':表示对文件可进行读写操作(添加到当前文件尾部)**
6. 'b':表示要读写二进制数据
'''
写入空文件
# 代码所有:cxw
# 开发时间:2021/11/10 20:52
filename="text_file/write_file.txt"
with open(filename,"a") as fwrite:
#使用"a",附加到文件的末尾,而不是覆盖原来文件的内容
'''如果要写入的文件不存在,函数open()将会自动创建'''
#使用"w"时,在每次写入数据时会删除之前写入的内容
fwrite.write("you can do it!")
file_name="text_file/pi.txt" #pi.txt不存在,open()自动创建了
with open(file_name,"w") as f_w1:
f_w1.write("you can do it ,you can change it!")
写入多行
要在输入的文本末尾添加换行符\n
file_name="text_file/pi.txt" #pi.txt不存在,open()自动创建了
with open(file_name,"w") as f_w1:
f_w1.write("you can do it ,you can change it!\n")
f_w1.write("yes yes yes \n")
#outcome
'''
you can do it ,you can change it!
yes yes yes
'''
实例1
'''
编写程序,让用户输入名字,写入到文件中
'''
# 代码所有:cxw
# 开发时间:2021/11/10 21:13
#实例
file_name="text_file/user_name.txt"
with open(file_name,"w") as f_users:
print("请输入你的name:\n")
s=input()
f_users.write(s)
实例2
# 代码所有:cxw
# 开发时间:2021/11/10 21:13
'''
10-3
访客:编写一个程序,提示用户输入其名字;用户作出响应后,
将其名字写入到文件guest.txt中。
10-4
访客名单:编写一个while循环,提示用户输入其名字。
用户输入其名字后,在屏幕上打印一句问候语,
并将一条访问记录添加到文件guest_book.txt中。
确保这个文件中的每条记录都独占一行
'''
#实例
# file_name="text_file/user_name.txt"
# with open(file_name,"w") as f_users:
# print("请输入你的name:\n")
# s=input()
# f_users.write(s)
filename="text_file/user_namechange.txt"
print("请输入你的名字,end结束")
while True:
s = input()
if s=="end":
break
else:
with open(filename,"w") as f_name:
f_name.write(s+"\n")
print("你的名字是;",s)