您当前的位置: 首页 >  Python
  • 0浏览

    0关注

    214博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python(21):文件的IO操作【对csv和txt文件的操作】

不愿透露姓名の网友 发布时间:2019-08-01 21:21:23 ,浏览量:0

在这里插入图片描述

文章目录
  • 一、简单的文件操作
    • 1.常用的文件读取标志符
    • 2.txt文件的读操作
    • 3.txt文件的写操作
    • 4.read、readline、readlines的区别
  • 二、对csv文件的读写操作
    • 1.读取操作
    • 2.读取时候跳过某一行
    • 3.写入csv
  • 三、利用python对excel进行追加数据
    • 1.读取excel的某个sheet的某一行的某一列
    • 2.追加数据到新文件

一、简单的文件操作 1.常用的文件读取标志符 r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式r+打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
  • file=open(r'a.txt' , 'r')

  • file叫做文件的句柄

  • 第一个参数是文件的路径

  • 文件路径前边的r叫元字符,避免路径中有转义字符,而引起其他不必要的事情

  • 后边的r表示读,常见的读取见图12-1

2.txt文件的读操作

2.1 read读取 在这里插入图片描述

a=open('E:\\text.txt','r')
print(a.read(4))#读完会接着读
print(a.read(4))
print(a.read())#默认会读完索引代码
a.close()

在这里插入图片描述

2.2 readline读取

a=open('E:\\text.txt','r')
print(a.readline())
#每行最后的换行是\n,会被解析出来,再加上print本身是换行,所以会下边空一行
print(a.readline())
a.close()

在这里插入图片描述

2.3 readlines读取

a=open('E:\\text.txt','r')
b=a.readlines()#会一行一行进行读写
print(b)
a.close()
for i in b:
    print(i)

在这里插入图片描述

3.txt文件的写操作
a=open('E:\\text.txt','w')
ls=['1','2\n','3']
a.writelines(ls)
a.close()

在这里插入图片描述

注意:每次写都是从头开始写会覆盖原先的内容,因此可以使用a+进行追加

a=open('E:\\text.txt','w')
b='我是蔡徐坤'
a.write(b)
a.close()

在这里插入图片描述

4.read、readline、readlines的区别 方法作用read1.读取整个文件,将文件内容放到一个字符串变量中。2.如果文件非常大,尤其是大于内存时,无法使用read()方法。3.read()直接读取字节到字符串中,包括了换行符readline1.readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存 2.比readlines慢得多 3.readline() 读取整行,包括行结束符,并作为字符串返回readlines一次性读取整个文件;自动将文件内容分析成一个行的列表。 二、对csv文件的读写操作 1.读取操作

文件内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tLqWLmO4-1603958602468)(C:\Users\qinfan\AppData\Roaming\Typora\typora-user-images\1603957345164.png)]

读取文件

import csv

file_path = 'result.csv'

# 读取csv文件
with open(file_path, 'r') as f:
    reader = csv.reader(f, delimiter=',')  # 默认的情况下, 读和写使用逗号做分隔符(delimiter)
    for row in reader:
        print(row)

结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51uPXwkV-1603958602469)(C:\Users\qinfan\AppData\Roaming\Typora\typora-user-images\1603957731518.png)]

2.读取时候跳过某一行

Python csv 跳过第一行 去除表头 读取文件内容

import csv
from itertools import islice
with open('2.csv', 'r') as read_file:
    reader = csv.reader(read_file)
    for row in islice(reader, 1, None):
        print(row)
3.写入csv
import csv

with open('some.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['1', '1', '1', '1'])
    writer.writerow(['2', '2', '2', '2' ])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvopptqw-1603958602470)(C:\Users\qinfan\AppData\Roaming\Typora\typora-user-images\1603958444732.png)]

问题: 发现每写完一行会加入一个空行

解决办法:

Python3因此需要加入在open( )中增加一个参数newline=’’

import csv

with open('some.csv', 'w',newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['1', '1', '1', '1'])
    writer.writerow(['2', '2', '2', '2' ])

在这里插入图片描述 Python2把w或者a改成字节存储

import csv

with open('some.csv', 'ab+') as f:
    writer = csv.writer(f)
    writer.writerow(['1', '1', '1', '1'])
    writer.writerow(['2', '2', '2', '2' ])
三、利用python对excel进行追加数据

原文件 在这里插入图片描述

1.读取excel的某个sheet的某一行的某一列
import xlrd

file = 'demo.xlsx'
sheet_name='Sheet1'

work = xlrd.open_workbook(file)
work_sheet = work.sheet_by_name(sheet_name)

print(work_sheet.cell_value(2, 0))  # 读取第3行的第1列

在这里插入图片描述

2.追加数据到新文件
# coding: utf-8 

import xlrd
from xlutils.copy import copy

file = 'demo.xlsx'
sheet_name = 'Sheet1'

work = xlrd.open_workbook(file)
work_sheet = work.sheet_by_name(sheet_name)

# 对数据表格进行复制
new_file = copy(work)
ws = new_file.get_sheet(0)

# 往新表格写数据
ws.write(4, 0, '4')
ws.write(4, 1, 'Danny')

# 保存
new_file_name = 'new_demo.xlsx'
new_file.save(new_file_name)

在这里插入图片描述

关注
打赏
1657102503
查看更多评论
立即登录/注册

微信扫码登录

0.0479s