python学习之文件

文件

作者 :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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值