python学习笔记四 — 文件路径

文件与文件类型

文件是一组相关数据的集合。组成文件的数据可以是ASCII偏码,也可以是二进制偏码。

目录与文件路径

文件是用来组织和管理一组相关数据的,而目录是用来组织和管理一组相关文件的。
目录又可称为文件夹,可以包含文件,也可以包含其他目录。
文件有可能存放在一个目录之中,也可能存放在多层子目录中。文件保存的位置为路径。

绝对路径

绝对路劲:从文件所在驱动器名称(又称"盘符")开始描述文件的保存位置。
具体表示为:

E:\projects\python\File.py

其中,“ \ ” 是盘符、目录、和文件之间在操作系统下的分隔符。

相对路径

相对路径:从当前工作目录开始描述文件的保存位置。
每个文件都有一个保存工作目录,又称 cwd。
如果文件和程序在同一文件夹内,可不用路径;
如果文件在程序所在文件夹下一级文件夹中,只需添加下一级文件夹名称即可;

在Linux和OS系统中:文件路径中使用斜杠( / )

在Windows系统中:文件路径使用反斜杠( \ )

通过使用绝对路径,可读取任何地方的文件,但最简单的方法是,要么将文件存储在程序所在的目录,要么存储在程序文件所在目录的下一级文件夹中。

文件操作

文件的操作可以分为一下三个步骤:

  1. 打开文件
  2. 读文件或者写文件
  3. 关闭文件

with open() as 通过使用这个方法打开文件,不需要你手动关闭文件,Python会在合适的机会关闭它。
open(),read()打开文本文件,并读取内容

import os
os.chdir('C:\\Users\\wzbc\\PycharmProjects\\pythonProject2')#修改当前目录
#file=open('word.txt','r') #用读模式打开当前目录下名为'word.txt'的文本文件
file=open('word.txt','w') #用写模式打开这个不存在的文件时,命令顺利执行
print(file)     #系统在目录下新建一个“0字节”,名称为‘word.txt’的文件,与文件对象file关联
file.close()
print(file)

写文件

file=open('word.txt','w')
file.write('飞雪连天射白鹿')
file.write('笑书神侠倚碧鸳')
file.close()
#用 file对象的writelines()方法写文件
file=open('word.txt','w')
file.writelines(['飞雪连天射白鹿\t','笑书神侠倚碧鸳\n'])
file.writelines(['横批:越女剑\n'])
file.close()

读文件
用file对象的read()方法读文件,读出文件所有内容并作为一个字符串返回。

file=open('word.txt','r')
text=file.read()
print(text)
file.close()
#用file对象的readline()方法读文件,读出文件中的当前行,并以字符串的形式返回。
file=open('word.txt','r')
text=file.readline() #读出文件中的当前行,并以字符串的形式返回。
print(text)
text=file.readline()
print(text)
file.close()
#用file对象的readlines()方法读文件,以列表的形式返回整个文件的内容,其中一行对应一个列表元素。
file=open('word.txt','r')
ls=file.readlines()
print(ls)

CSV文件操作

CSV是指逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。

CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。

通常,所有记录都有完全相同的字段序列.

特点:

  • 读取出的数据一般为字符类型,如果是数字需要人为转换为数字
  • 以行为单位读取数据
  • 列之间以半角逗号或制表符为分隔,一般为半角逗号
  • 一般为每行开头不空格,第一行是属性列,数据列之间以间隔符为间隔无空格,行之间无空行。

行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误。PS:已经被这个错误坑过很多次!

使用python I/O写入和读取CSV文件

使用PythonI/O写入csv文件’’’

import csv
fname = 'testcsv.csv'
with open(fname,'wb') as csvfile: # 解决写入空行问题 使用wb不会再每一行后面插入空行
    csvwriter = csv.writer(csvfile,delimiter=',')
    lst= [[1,2,3],[4,5,6]]
    for item in lst:
        csvwriter.writerow(item)

读取操作

import csv
with open('stu.csv','r') as stucsv:
    reader=csv.reader(stucsv)
    for row in reader:
        print(row)
import csv
with open('stu.csv','a') as stucsv:
    csvwriter=csv.writer(stucsv)
    csvwriter.writerow(['张芳','女','20'])
    csvwriter.writerow(['王虎', '男', '21'])
#excel文件中出现空行,需要添加一个参数"newline=''",指明在写入新纪录后不插入空行
import csv
with open('stu.csv','a',newline='') as stucsv:
    csvwriter=csv.writer(stucsv)
    csvwriter.writerow(['张芳','女','20'])
    csvwriter.writerow(['王虎', '男', '21'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值