Python文件读写

操作文件和目录

os 模块提供了非常丰富的方法用来处理文件和目录。

os

Python3 OS 文件/目录方法

os.sep

  • os.sep根据所处的平台,自动采用相应的分隔符号。(在Windows上,文件的路径分隔符是’\’,在Linux上是’/’。)
import os
path = 'data' + os.sep + 'LogiReg_data.txt'

'data\\LogiReg_data.txt'
data_dir = os.sep.join(['hello', 'world'])  
 
'hello\\world'

os.listdir(path)

  • os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 ‘.’ 和’…’ 即使它在文件夹中。只支持在 Unix, Windows 下使用。
  • 返回list(所有文件和文件夹名)。
import os
path='E:/workspace/AI'
dirs=os.listdir(path)

文件读取

open()

Python3 输入和输出

open() 将会返回一个文件(file) 对象,基本语法格式如下:open(filename, mode)

  • mode:决定了打开文件的模式:只读(r),写入(w),追加(a)等。这个参数是非强制的,默认文件访问模式为只读®。

文件对象的方法

  • f.read(size):将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数:当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
  • f.readline():会从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
  • f.readlines():返回该文件中包含的所有行。
with open('/path/to/file', 'r') as f:
    print(f.read())

Pandas

pandas.read_csv()

读入以逗号为分隔符的数据文件,并以DataFrame类型返回。

pdData = pd.read_csv(path, header=None, names=['Exam 1', 'Exam 2', 'Admitted'])

Args:

  • filepath_or_buffer:str, path object or file-like object
    可以是任何有效的string路径,string可以是URL,有效的URL方案包括http,ftp,s3,file。
  • sep:str, default ‘,’
    若sep=None,则Python会自动检测分隔符。
  • delimiterstr:, default None
    定界符,备选分隔符(如果指定该参数,则sep参数失效)。
  • header:int, list of int, default ‘infer’
    指定行数用来作为列名,数据开始行数。
    header=0,指定第一行为列名;header=None,通过Names指定列名。
    header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现,第3行数据将被丢弃,dataframe的数据从第5行开始。)。
    注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
  • name:sarray-like, optional
    用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
  • index_col : int or sequence or False, default None
    用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
    如果文件不规则,行尾有分隔符,则可以设定index_col=False 来是的pandas不适用第一列作为行索引。
  • mangle_dupe_cols : boolean, default True
    重复的列,将‘X’…’X’表示为‘X.0’…’X.N’。如果设定为false则会将所有重名列覆盖。
  • dtype : Type name or dict of column -> type, default None
    每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
  • skip_blank_lines boolean, default True
    如果为True,则跳过空行;否则记为NaN。
  • skiprows:跳过的行。eg:skiprows=1;skiprows=[1,2,4];skiprows=range(1,10)

read_csv官方文档

文件写入

open()

  • f.write(string) :将 string 写入到文件中, 然后返回写入的字符数。如果要写入一些不是字符串的东西, 那么将需要先进行转换。
with open('/path/to/file', 'w') as f:
	num = f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
	print(num)

Pandas

import pandas as pd
d={'Year':[2018,2019,2020],'Month':[3,7,9]}
df=pd.DataFrame(d)
df.to_csv('E:\\worplace\\save.csv',sep=',',index=False,header=True)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值