Python中os模块和csv模块的使用

目录

os模块的使用

f=open("test.txt","mode")

读取文件中的内容 

写入数据到文件中

os模块中一些基本的判断文件的函数

CSV

读文件

写文件


OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录

os模块的使用

f=open("test.txt","mode")

mode有以下几种:

  • r:只读,如果无此文件的话就会报错
  • w:写入,覆盖之前的内容,如果无此文件就新建
  • a:写入,在文件末尾追加新的内容,文件如果不存在,则新建
  • +:更新,须结合r、w、a参数使用,指针在最后面
  • b:打开二进制的文件,可以与r、w、a、+结合使用
  • U:支持所有的换行符号。“ \r ”、“ \n ", " \r\n "

现在有一个 test.txt 文件,里面有以下内容

hello,word!
iloveyou

读取文件中的内容 

我们使用  f.read() 函数,读取文件中的所有内容,返回一个 str 字符串

我们使用 f.readline(size) 函数,读取文件的第一行内容,返回一个字符串,参数size代表读取的字符串,不填默认读取所有

我们使用 f.readlines(size) 函数读取文件中的内容,参数size代表读取的行数,不填默认读取所有,返回一个 list 列表,每一行作为列表的一个值

写入数据到文件中

追加数据

import os
f=open("test.txt","a")  ##追加数据到文件中
f.write("hahahahahahha")
f.close()      ##关闭文件流

文件会被追加到行的末尾

覆盖原数据

import os
f=open("test.txt","w")  ##追加数据到文件中
f.write("hahahahahahha")
f.close()      ##关闭文件流

文件会被覆盖

os模块中一些基本的判断文件的函数

获取当前目录下某文件的绝对路径,如果该文件不存在,也返回
os.path.abspath("123.txt")
 
判断该目录下文件或者目录是否存在,如果存在返回true,否则返回false
os.path.exists("123")

如果存在,则再判断是目录还是文件,如果存在返回true,否则返回false
os.path.isdir("123")     //判断是否是目录
os.path.isfile("123")   //判断是否是文件
 
返回给定路径下的所有文件或目录,返回的是列表类型的数据
os.listdir("e://")
 
将路径和文件名加在一起
path=os.path.join(" c:// ",123.txt)
 
获得当前的路径
os.getcwd() 

CSV

CSV (Comma Separated Values) 即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到csv这种格式的文件,它的使用是比较广泛的,python内置了处理csv格式数据的csv模块。

读文件

比如我们现在有一个 test.csv的文件,文件内容如下

我们使用reader函数来读取 test.csv 文件中的内容

reader(csvfile, dialect='excel', **fmtparams)

  • csvfile 参数,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。
  • dialect参数,编码风格,不写则默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册
  • fmtparams参数,格式化参数,用来覆盖之前dialect对象指定的编码风格。
import csv
with open("test.csv","r") as myFile:
    lines=csv.reader(myFile)   ##只写第一个参数,默认为excel风格,函数返回一个list列表
    for line in lines:
        print(line)

读取指定的列

import csv
with open("test.csv","r") as myFile:
    lines=csv.reader(myFile)
    for line in lines:
        print(line[1])        ##序号从0开始

写文件

writer(csvfile, dialect='excel', **fmtparams)

  • csvfile 参数,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。
  • dialect参数,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册
  • fmtparams参数,格式化参数,用来覆盖之前dialect对象指定的编码风格。

追加一行数据进去

import csv
row=['5','zhang','30']
with open('test.csv','a') as myFile:
    csv_writer=csv.writer(myFile,dialect="excel")  //返回一个writer对象
    csv_writer.writerow(row)      //一行一行写入     csv_writer.writerows()的话是一次写入多行
    myFile.close()

覆盖之前的数据

import csv
row=['5','zhang','30']
with open('test.csv','w') as myFile:
    csv_writer=csv.writer(myFile,dialect="excel")
    csv_writer.writerow(row)
    myFile.close()

猜你喜欢

转载自blog.csdn.net/qq_36119192/article/details/83063229
今日推荐