python 文件操作

摘要:
/Usr/bin/envpython#-*-coding:utf-8-*-#练习1:请根据_“user=['alex','eric']data=”_“.doinfile_object=openfile_object.writefile_object.close()”#练习2:请根据_Links翻译用户中的元素,并编写文件”“user=[{'name':'alex','pwd':'123'},#alex|123{'ame':'eric',':'olbody'},#eric|olbody]file_object=openfortiteminuser:line=“%s|%s”%file_object。writefile_object。close()“”#练习3:请读出a2.txt中的文件并将其添加到列表['alex|123','eric|ol body']#方法1“”“file_obj=opencontent=file_obj.read()file_obj.close()content=content.strip()data_list=content.split('')print”“”result=[]file_obj=openforlineinfile_obj:line=line.strip,Python将其中的所有文本解释为字符串。如果您读取一个数字,则必须使用int()将其转换为-open-r,它只能读取。

读取文件:r,只读不能写,文件不存在报错

#打开文件
 file_object=open('log.txt',mode="r", encoding='utf-8')#读取:mode为r,只读不能写,文件不存在,报错
# 读取内容,
 content=file_object.read()
 print(content)
#关闭文件
 file_object.close()

写入文件:w,只写不能读(先清空文件),文件不存在则新建

#打开文件
 file_object=open('looooog.txt',mode="w", encoding='utf-8')#mode为 w,write(只写,先清空,一般用于新建文件)
#写内容
file_object.write("李伟")
#关闭文件
file_object.close()

写入文件:a只追加不能读,文件不存在新建

#打开文件
file_object=open('log.txt',mode="a", encoding='utf-8')#写入:a,只在尾部追加不读,文件不存在新建
#写内容
v=file_object.write("您好啊")
#关闭文件
file_object.close( )
 

可读可写
读取,写入:r+,从文件头开始写,保留原文件中没有被覆盖的内容

file_object = open('log.txt',mode='r+',encoding='utf-8')
file_object.seek(2) # 调整光标的位置,2表示2字节

content = file_object.read()#读当前光标后面的内容
file_object.write('')

# 读取内容content = file_object.read()print(content)file_object.write('666')#末尾添加666

#关闭文件
file_object.close()

可读可写

w+,打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

写入时会将文件清空,读取时需要调整光标

 

file_object = open('log.txt',mode='w+',encoding='utf-8')
data = file_object.read()
print(data)
file_object.write('alex')
file_object.seek(0)
data = file_object.read()
print(data)
file_object.close()
可读可写:a+,默认追加时光标永远在最后
file_object = open('log.txt',mode='a+',encoding='utf-8')

# file_object.seek(0)
# data = file_object.read()
# print(data)

file_object.seek(0)#即使光标移到最前面
file_object.write('666')#写仍追加到最后

file_object.close()
读操作
file_object = open('log.txt',mode='r',encoding='utf-8')

# 读取文件的所有内容到内存
# data = file_object.read()

# 从当前光标所在的位置向后读取文件两个字符
# data = file_object.read(2)

# 读取文件的所有内容到内存,并按照每一行进行分割到列表中。
# data_list = file_object.readlines()
# print(data_list)

# 如果以后读取一个特别大的文件 (**********)
# for line in file_object:
#     line = line.strip()#除去里面的换行
#     print(line)

# file_object.close()

写操作

file_object = open('log.txt',mode='w',encoding='utf-8')
file_object.write('asdfadsfasdf
')
file_object.write('asdfasdfasdfsadf')
file_object.close()

练习题

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 练习1:请将user中的元素根据 _ 链接,并写入 'a1.txt' 的文件
"""
user = ['alex','eric']
data = "_".join(user)
file_object = open('a1.txt',mode='w',encoding='utf-8')
file_object.write(data)
file_object.close()
"""

# 练习2:请将user中的元素根据 _ 链接,并写入 'a1.txt' 的文件
"""
user = [
    {'name':'alex','pwd':'123'},    # alex|123
    {'name':'eric','pwd':'olbody'}, # eric|olbody
]
file_object = open('a2.txt',mode='w',encoding='utf-8')
for item in user:
    line = "%s|%s
" %(item['name'],item['pwd'],)
    file_object.write(line)
file_object.close()
"""

# 练习3:请将a2.txt中的文件读取出来并添加到一个列表中 ['alex|123','eric|olbody']
# 方式一
"""
file_obj = open('a2.txt',mode='r',encoding='utf-8')
content = file_obj.read()
file_obj.close()
content = content.strip()
data_list = content.split('
')
print(data_list)
"""

"""
result = []
file_obj = open('a2.txt',mode='r',encoding='utf-8')
for line in file_obj:
    line = line.strip()
    result.append(line)
file_obj.close()
print(result)
"""

总结

注意:读取文本文件时,Python将其中的所有文本都解读为字符串,如果你读取的是数字,必须使用int()将其转换

- 打开
  - r,只能读。 【**- w,只能写,写之前清空。 【**- a,只能追加。【*- r+
    - 读:默认从0的光标开始读。也可以通过 seek 调整光标的为位置。
    - 写:若光标在0位置,则会覆盖0光标后面的字,从光标所在的位置开始写,也可以通过 seek 调整光标的位置。
  - w+
    - 读:默认光标永远在写入的最后或0,也可以通过 seek 调整光标的位置。
    - 写:先清空。
  - a+
    - 读:默认光标在最后,也可以通过 seek 调整光标的位置。然后再去读取。
    - 写:永远写到最后。
  • 操作

      • read()

      • read(2) # 字符

      • readlines()#readlines()从文件中读取每一行,并将其存储在一个列表

    • write

  • 关闭

免责声明:文章转载自《python 文件操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇百度UEditor在线编辑器的配置和图片上传CMake学习记录--list(列表操作命令)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue请求本地json数据

1.下载vue-resource插件   cnpm install vue-resource   1.2全局引入vue-resource:   在main.js   import VueResource from 'vue-resource';   Vue.use(VueResource);   2.把静态josn文件放在项目根的 static文件夹:...

difflib模块文件内容差异对比

简介 difflib作为python的标准库模块,无需安装,作用是比对文本之间的差异,且支持输出可读性比较强的HTML文档,与Linux下的diff命令相似。可以使用该模块比对代码和配置文件的差异,在版本控制方面非常有用。Python2.3以后的版本默认自带difflib模块,无需额外安装。 使用方法 字符串差异的比对 #!/usr/bin/env py...

python dataframe astype 字段类型转换

使用dtype查看dataframe字段类型 print df.dtypes 使用astype实现dataframe字段类型转换 # -*- coding: UTF-8 -*- import pandas as pd df = pd.DataFrame([{'col1':'a', 'col2':'1'}, {'col1':'b', 'col2':'...

如何使用php生成唯一ID的4种方法

php生成唯一ID的应用场景非常普遍,如临时缓存文件名称,临时变量,临时安全码等,uniqid()函数基于以微秒计的当前时间,生成一个唯一的 ID。由于生成唯一ID与微秒时间关联,因此ID的唯一性非常可靠。 生成的唯一ID默认返回的字符串有 13 个字符串长,如果再结合md5()函数,生成的唯一ID可靠性将更高,这种生成的ID比随机性的ID 最大优点在于可...

python-模块分类与导入

       python-模块的分类与导入 1,什么是模块:   在计算机程序的开放过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。   为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少了,很多编程语言都采用这种组织代码的方式。   在Python中,一个.py文件就称之为一...

python之路 之一pyspark

pip包下载安装pyspark pip install pyspark  这里可能会遇到安装超时的情况   加参数  --timeout=100 pip   -default   -timeout=100     install -U pyspark  下面是我写的一些代码,在运行时,没什么问题,但是目前不知道怎么拿到rdd与dataframe中的值  f...