Python学习笔记——文件对象和操作(1)

Python的文件处理和相关输入输出能力。介绍文件对象(它的内建函数,内建方法和属性),标准文件,同时讨论文件系统的访问方法,文件执行,以及相关文件模块。

 

一,内建函数open()和file()

 

语法:file_object = open(fiel_name,access_mode=’r’, buffering=-1)

 

File_name是要打开的文件名字的字符串,可以使相对路径或者绝对路径,access_mode可选参数,表示文件打开的模式,’r’,’w’,’a’分别代表读取,写入和追加。还有个’U’模式,代表通用换行符支持。

 

‘r’或者’U’模式打开的文件必须是已经存在的,使用’w’模式打开的文件若存在则首先清空,然后重新创建。以’a’模式打开的文件是为追加数据准备的,所有写入数据都将追加到文件的末尾。

另一个可选参数buffering用于指示访问文件所采用的缓冲方式,0表示不缓冲,1表示缓冲一行数据,大于1代表用给定值作为缓冲区大小,不提供参数或者负值代表使用系统默认缓冲机制。

 

File()和open()的用法相同。

 

二,文件内建方法:

 

1 输入

read()方法用来直接读取字节到字符串中,可以指定读取数目,默认是文件将被读取直至末尾。

readline()读取打开文件的一行,包括行结束符,也可选size参数,默认为-1,代表直至读到行结束符。

readlines()不和前两个一个返回一个字符串,它会读取所有行然后把它们作为一个字符串列表返回,有一个可选参数sizhint代表返回的最大字节大小。

2 输出

write()内建方法功能与read()和readline()相反,它把含有文本数据或二进制数据块的字符写到文件中去。

和readlines()一样,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它写入文件,行结束符不会自动加入,所以如果需要的话,你必须在调用writelines()前给每行结尾加上行结束符。

3 文件内移动 seek()

seek()方法可以在文件中移动文件指针到不同的位置,offset字节代表对于某个位置偏移量,位置的默认值为0,代表从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。和C语言总的fseek()类似。

 

下面看看几个例子:

filename = raw_input('Enter file name:')

f = open(filename,'r')

allLines = f.readlines()

f.close()

for eachLine in allLines:

print eachLine,

这个例子是读取一个文件的内容,但是是先把文件的所有内容读到allLines后,在把它一行一行的通过for循环打印出来。

下面看看用文件迭代器的方法:

filename = raw_input('Enter file name:')

f = open(filename,'r')

for eachLine in f:

print eachLine,

f.close()

这个思路是读一行显示一行,

注意:print语句默认在输出内容末尾加一个换行符,在其后面加一个逗号就可以避免这个行为,readline()和readlines()不会对行里的空白字符做任何处理,如果我们不加逗号的话,那么显示的文本每行后都会有两个换行符,一个是附带的,另一个是print语句自动添加的。

 

下面看两个例子:

第一个:

import os

filename = raw_input('Enter filename:')

fobj = open(filename,'w')

while True:

aLine = raw_input("Enter a line('.' toquit):")

if aLine !=".":

fobj.write('%s%s' %(aLine,os.linesep))

else:

break

fobj.close()

这是往文件中写,每次写一行,如果输入’.’,则结束。关键是每一行结束我们要加一个换行符,这里用到了os模块中的linesep ,它是用于文件中分隔行的字符串,这样就方便了我们,我们可以不必去关心当前系统所支持的换行符是什么,os模块会自动选择合适的换行符。

 

第二个例子:以可读可写模式创建一个新的文件,在向文件写入数据后,我们使用seek()方法在文件内部移动,使用tell()方法展示我们的移动过程。

 

>>> f =open('c:/Python26/code/test.txt','w+')

>>> f.tell()

0L

>>> f.write('test line1\n')

>>> f.tell()

13L

>>> f.write('test line2\n')

>>> f.tell()

26L

>>> f.seek(-13,1)

>>> f.tell()

13L

>>> f.readline()

'test line 2\n'

>>> f.seek(0,0)

>>> f.readline()

'test line 1\n'

>>> f.tell()

13L

>>> f.readline()

'test line 2\n'

>>> f.tell()

26L

>>> f.close()

>>>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这篇笔记主要介绍了Pandas模块的基本操作和使用方法。Pandas是Python中一个用于数据分析和处理的常用库,提供了高效的数据结构和数据分析工具,是进行数据处理和数据挖掘的重要工具之一。 一、Pandas数据结构 Pandas主要有两种数据结构:Series和DataFrame。 1. Series Series是一种类似于一维数组的对象,由一组数据和一组与之相关的标签(即索引)组成。Series的创建方式如下: ```python import pandas as pd # 通过列表创建Series s = pd.Series([1, 3, 5, np.nan, 6, 8]) # 通过字典创建Series s = pd.Series({'a': 1, 'b': 2, 'c': 3}) ``` 2. DataFrame DataFrame是一种二维表格数据结构,由一组数据和一组行索引和列索引组成。DataFrame的创建方式有很多种,最常用的是通过字典创建。例如: ```python import pandas as pd data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [18, 20, 22], 'gender': ['M', 'M', 'F']} df = pd.DataFrame(data) ``` 二、Pandas的基本操作 1. 数据读取 Pandas可以读取多种格式的数据文件,如CSV、Excel、SQL等。常用的读取CSV文件的方式如下: ```python import pandas as pd df = pd.read_csv('data.csv') ``` 2. 数据预处理 数据预处理是数据挖掘中非常重要的一部分,Pandas提供了很多方便的函数和方法来进行数据清洗和转换。常用的数据预处理函数和方法有: - 处理缺失值 ```python # 判断是否存在缺失值 df.isnull() # 删除缺失值 df.dropna() # 填充缺失值 df.fillna(value) ``` - 处理重复值 ```python # 删除重复值 df.drop_duplicates() ``` - 数据转换 ```python # 数据类型转换 df.astype() # 数据替换 df.replace() ``` 3. 数据分析 Pandas提供了各种数据分析和处理的方法和函数,常用的包括: - 统计函数 ```python # 计算平均值 df.mean() # 计算标准差 df.std() # 计算最大值和最小值 df.max(), df.min() ``` - 排序 ```python # 按照某列排序 df.sort_values(by='column_name') ``` - 数据聚合 ```python # 对某列数据进行分组求和 df.groupby('column_name').sum() ``` 以上是Pandas模块的基础内容,还有很多高级用法和技巧需要进一步学习和掌握。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值