Python的文件读写有点类似php的文件读写。php的文件读写已经在《【php】让记事本成为你调控变量的控制台》(点击打开链接)说过了,以下用一个小样例说明Python的文件读写。

在F盘原本是没有f:\你好.txt这个文件的,我们要把用户在Python控制台输入的内容,搞到这个文件上去。本程序在Eclipse下的Pydev编译通过没有乱码。Windows控制台cmd的乱码问题请參考《【Python】遍历某文件夹下的全部文件夹与文件的路径、输出中文乱码问题》(点击打开链接)。程序代码例如以下:

#-*-coding:utf-8-*-
import os;
#写操作
fileName="f:\你好.txt"
fileContent=raw_input("你输入的内容将会追加到"+fileName);
fp=open(fileName.decode('utf-8').encode('gbk'),"a+");
fp.write(fileContent);
print "你输入的内容:"+fileContent;
print "已追加写入至:"+fileName;
fp.close();
print ;
#读操作
fileSize=os.path.getsize(fileName.decode('utf-8').encode('gbk'));
fp=open(fileName.decode('utf-8').encode('gbk'),"a+");
print "fileName如今的文件大小为:"+str(fileSize)+"b";
print "如今"+fileName+"的内容为:"
print fp.read(fileSize).decode('utf-8');
fp.close();

执行效果例如以下:

这里,主要说明几个文件操作的方法:

1、系统的固有类OS能够获取文件大小:os.path.getsize(filename),当中filename是路径。

能够看到上面的路径被我通过.decode('utf-8').encode('gbk')先编码为utf-8,再解码为gbk,用来适应系统的编码方式,否则会出现乱码。

主要是系统对于文件名称的处理与Python对于文件名称的处理的编码不一致。即使你在开头放了#-*-coding:utf-8-*-

然而,对于文件内容的处理却不用如此。

Python的编码就是奇奇怪怪的

2、open方法第二个參数代码文件的读取的方式。

尽管Python与C语言一样,提供的读取方法相同有a+,w+,r+三大类。

w。以写方式打开,

a。以追加模式打开(从EOF開始,必要时创建新文件)

r+,以读写模式打开

w+,以读写模式打开(參见w)

a+,以读写模式打开(參见a)

rb,以二进制读模式打开

wb,以二进制写模式打开(參见w)

ab,以二进制追加模式打开(參见a)

rb+。以二进制读写模式打开(參见r+)

wb+,以二进制读写模式打开(參见w+)

ab+,以二进制读写模式打开(參见a+)

可是,经历亲自測试,发现不管是读写操作。都用a+则不会出错,也不知道为什么。反正php是这样玩。我在Python试试,一開始用r+去读文件老不行,结果统一用a+却能够了。很奇怪。

3、最后,全部编程语言都一样,不管是文件也好、数据库也好。人走带门,自行补上关闭连接的方法。都是默认不关闭~

【Python】文件读写操作的更多相关文章

  1. python 文件读写操作(24)

    以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...

  2. Python 文件读写操作实例详解

    Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...

  3. Python—文件读写操作

    初识文件操作 使用open()函数打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了,根据打开文件的方式不同能够执行的操作也会有相应的差异. 打开文件的方式: r, w, a, ...

  4. 一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

           关于文件操作的几种常用方式,网上已有很多解说,内容很丰富,但也因此有些杂乱复杂.今天,我就以我个人的学习经验写一篇详细又易懂的总结文章,希望大家看完之后会有所收获. 一.核心功能 ‘r’ ...

  5. python文件读写操作与linux shell变量命令交互执行

    python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼! #coding=utf-8 #!/usr/bin/python import os impor ...

  6. python文件读写操作

    操作文件时一般经历以下步骤: 打开文件 操作文件 1.打开文件: 文件句柄 = open('/path/to/file_name','pattern') pattern: r:只读模式,打开文件时默认 ...

  7. python 文件读写操作打开模式

    ‘r’:只读.该文件必须已存在. ‘r+’:可读可写.该文件必须已存在,写为追加在文件内容末尾. ‘rb’:表示以二进制方式读取文件.该文件必须已存在. ‘w’:只写.打开即默认创建一个新文件,如果文 ...

  8. python里文件读写操作

    文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...

  9. python(三)一个文件读写操作的小程序

    我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...

  10. excel、xls文件读写操作

    python 常用的excel.xls文件读写操作,有两个模块 xlrd:读 xlwt:写 本次先写一个读的例子: class CaseData(object): def __init__(self, ...

随机推荐

  1. 图标框架Font Awesome

    直接引入Font Awesome的css <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  2. Unity3D 经常使用库

    JSON.NET:http://james.newtonking.com/json LitJSON: http://lbv.github.io/litjson/ ProtoBuf  - net:htt ...

  3. 禁止tomcat生成catalina.out、localhost_access_log、host-manager.log、localhost.log、manager.log这些文件

    1.找到tomcat目录conf,logging.properties把这个文件重命名(推荐:也可以根据自己的需要更改里面的配置文件) 其实删掉也可以但是不建义 这样就不会生成host-manager ...

  4. nginx反向代理vue访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题

    问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...

  5. IntelliJ IDEA2018.1、2017.3激活

    IntelliJ IDEA2018.1.2017.3破解教程 http://idea.java.sx/ 简单快捷!! ————————————————————————————————————————  ...

  6. 法外之徒第一季/全集Braquo迅雷下载

    英文译名 Braquo (第1-2季) (2012-01-05首播)法国.本季看点:<法外之徒>Eddy.Théo.Walter和Roxane私人本是巴黎上塞纳省地区的警察. 因为他们的好 ...

  7. End2endIT

    "C:\Program Files\Java\jdk1.8.0_112\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 & ...

  8. [Web 前端] CSS 盒子模型,绝对定位和相对定位

    cp : https://blog.csdn.net/web_yh/article/details/53239372 一.盒子模型: 标准模式和混杂模式(IE).在标准模式下浏览器按照规范呈现页面:在 ...

  9. .Net AppDomain详解(一)

    AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序.AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDom ...

  10. NOI2015滚粗记

    我的第一次也是最后一次NOI 好像写的晚了许多……可能一谈到退役总会有些伤感,并不愿去面对…… 一路走来已有5年,虽然我总在说“其实我好好学的时间只有半年”,但那也不过是给自己是蒟蒻找的借口吧...一 ...