文件处理

1.用open()就可以打开文件,但是请注意:文件里有中文请设置编码,如 :open("filepath","r",encoding="utf-8")本书没有说明这个,结果我输出的都是乱码,在网上找了好久才发现解决方法。第二个参数是文件读写模式,详细请看下面

  'r'       打开读取文件(默认)
    'w'      打开写入文件,会先清除文件内容
    'x'       创建一个新文件不打开写入
    'a'       如果文件存在,打开写入,并附加到文件末尾
    'b'       二进制模式
    't'       文本模式(默认)

'+'       打开一个磁盘上的文件并更新(读取和写入)

下面是一个简单的打开文件并读取内容的python代码

  1. # 自python3开始默认使用unicode保存代码文件,所以可以直接在代码里使用中文,如果是python2.x记得设置编码
  2. # 导入os库
  3. import os
  4.  
  5. os.chdir("workpath") # 切换工作目录
  6. os.getcwd() # 查看当前工作目录
  7. path = "新建文本文档.txt" # 如果没有切换工作目录,这里就要用绝对路径
  8. data = open(path, "r", encoding="utf-8")   # 用utf-8格式打开文件,如果有中文请一定要指明编码格式,目前我看到的中文博客里基本都会提到中文编码的坑,前辈们的血泪教训一定不能忘啊
  9. # 循环读取文件内容
  10. for line in data:
  11. try:  # 异常处理
  12. print(line, end="")  # end=""是去掉换行符号
  13. except IOError as ie:   #as 也可以用于赋值
           print(str(ie))  #str() 用于转换成字符串,相当于c#里的ToString()
  14.    pass  # pass就是pass拉
    data.seek(0)  # seek用于退回到起始位置(其实根据参数可以跳到指定位置,但0算是用的最多的)
  15. data.close()  # 一定要记得关闭

2.字符串操作

split()和c#一样可以分离字符串,但是要注意参数是不返回的,比如strA.split(":")返回的字符串列表里没有:这点要注意,还有一个缺省参数用于指定分离成几个,默认是-1即有多少分离多少,比如是strA.split(":",1)则无论字符串里有多少个:都只会分裂成两个字符串,返回值是列表,可以直接a=strA.split(":")也可以(a,b)=strA.split(":"),一般情况下我建议前一种,除非你用strA.split(":",1)确定分离的数量,还有一点要注意,split返回的是用小括号包围的列表,即不可变列表,也称作元组(tuple)。而中括号包围的列表是可变列表。

find()有点类似c#里的indexOf,查询匹配项并返回下标,python里也有index()但是index()在找不到匹配项会报异常,而find()则返回-1,所以一般建议使用find,可以用参数指定查询范围,如strA.find(":",0,10)查询下标0至9的字符匹配,范围包含左边不含右边,记住哦。

还有一些函数就不一一细说了,如果有其他语言的编程经验,或者英语非常好的话,很多函数一看名称就知道是干什么的了,比如append()我不知道也没有这个单词,但我知道这一般是在最后附加,等等。这些东西还是要慢慢积累,不是一两本书就能说的完的。

Ps:写博客也是一门技术活啊,这篇文章写完一看,感觉没什么用,而且断断续续的写了快一下午。真是佩服那些大神。

Head First Python学习笔记2——文件与异常的更多相关文章

  1. Python学习笔记之文件处理

    1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...

  2. [Python学习笔记]组织文件

    shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...

  3. Python学习笔记015——文件file的常规操作之一(文本文件)

    1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...

  4. python学习笔记(11):文件的访问与函数式编程

    一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...

  5. python学习笔记(7)文件的访问与函数式编程

    一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...

  6. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  7. 转载-Python学习笔记之文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  8. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  9. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

随机推荐

  1. 【cocos2d-x 手游研发----地图活起来了】

    谈到地图不少人都说要做地图编辑器了,但是我暂时绕过这一步,如果不用寻路地图就不能移动?寻路就是会绕过障碍物的算法. 我做了一个简单的地图的思想,就是地图分层3层:背景层.可行区域层.遮罩层,但是地图就 ...

  2. python docker库

    安装方式pip pip install docker -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 官方文档地址 ht ...

  3. Day 26封装

    一.封装 广义上的封装: 属于一个类的静态和动态属性,总是出现在一个类中. 使用的永远用类名或者对象名调用. 狭义上的封装:就是把变量和方法私有化,在类的外部以及子类中不能直接使用了 . class ...

  4. 2017 NAIPC A:Pieces of Parentheses

    my team solve the problem in the contest with similar ideathis is a more deep analysis The main idea ...

  5. Weekly Contest 129

    1020. Partition Array Into Three Parts With Equal Sum Given an array A of integers, return true if a ...

  6. 本宝宝的blog介绍

    这里是“小可爱酱”嘤嘤嘤~(名字提供来自星小雨哥哥) 我发现了 不管怎么努力 都会 注孤生   “对不起.” “还有,谢谢你.”   我有一个愿望. “是什么啊?” 就是,希望这个世界上的人们, ta ...

  7. Code Chef DARTSEGM(计算几何+凸包)

    题面 传送门 题解 好眼熟丫-- 一月月赛最后一题--,代码都不用改-- //minamoto #include<bits/stdc++.h> #define R register #de ...

  8. 用node.js写一个简单爬虫,并将数据导出为 excel 文件

    引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...

  9. 线程TLAB局部缓存区域(Thread Local Allocation Buffer)

    TLAB(Thread Local Allocation Buffer) 1,堆是JVM中所有线程共享的,因此在其上进行对象内存的分配均需要进行加锁,这也导致了new对象的开销是比较大的 2,Sun ...

  10. centos7无法上网问题

    在虚拟机VM中安装了centos7,无法上网,在同一个虚拟机里,也安装了Ubuntu是可以上网的,不知道咋回事,所以上网查了资料博客,现总结如下. 一.首先打开虚拟的设置,可以看到虚拟机网络的设置默认 ...