python中的文件读写

虽然研究了很多python代码,却没有整理过关于文件操作的,系统地整理下。

一、普通的文件读写

在磁盘上读写文件都是由操作系统控制的,应用读写文件就是请求操作系统打开一个文件对象,然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

python内置了各种函数,来对文件进行操作。
1、打开文件:open

 f = open('data/test.txt', 'r')

2、读取文件内容:read()

str=f.read()#返回一个str对象
for line in f.readlines():
    print(line.strip()) # 把末尾的'\n'删掉

因为调用read()会一次性读取文件的全部内容,如果文件特别大,会内存溢出,所以,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。根据不同情况决定调用哪种方法。

3、读取二进制文件

f = open('img/test.jpg', 'rb')
f.read()

4、字符编码
要读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码。比如GBK编码的文件:

f = open('/Users/michael/gbk.txt', 'rb')
u = f.read().decode('gbk')

如果每次都这么手动转换编码嫌麻烦(写程序怕麻烦是好事,不怕麻烦就会写出又长又难懂又没法维护的代码),Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:

import codecs
with codecs.open('data/gbk.txt', 'r', 'gbk') as f:
    f.read() 

5、关闭文件

f.close()

Python引入了with语句来自动帮我们调用close()方法,这样我们就不用手工调用close方法了:

with open('data/test.txt', 'r') as f:
    print f.read()

6、写文件

with open('data/test.txt', 'w') as f:
    f.write('Hello, world!')

注意,当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。所以如果不用with语句的话千万不要忘记调用close()。

二、Python读取CSV文件的三种方式

1、普通方法读取:

 with open("fileName.csv",encoding='utf-8') as file:
     for line in  file:
         print line

2、用CSV标准库读取:

import csv
csv_reader = csv.reader(open("fileName.csv"))
for row in csv_reader:
   print row

3、用pandas读取:

import pandas as pd
data = pd.read_csv("fileName.csv")
print data

4、DataFrame写入csv文件

df.to_csv('Result.csv') 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值