python 基础 文件编辑

一、打开文件

open函数,该函数用于文件处理

1、文件句柄  = open(‘文件路径‘‘模式‘)

打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

打开文件的模式有:

  • r,只读模式【默认】
  • w,只写模式【不可读;不存在则创建;存在则清空内容;】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内容;】

‘+’表示可以同时读写某个文件

  • r+,读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

“b"表示以字节的方式操作

  • rb或r+b
  • wb或w+b
  • xb或x+b
  • ab或a+b

以b方式打开时,读取到的内容也是字节类型,写入时也需要提供字节类型

二,操作

  1 class file(object)
  2     def close(self): # real signature unknown; restored from __doc__
  3         关闭文件
  4         """
  5         close() -> None or (perhaps) an integer.  Close the file.
  6
  7         Sets data attribute .closed to True.  A closed file cannot be used for
  8         further I/O operations.  close() may be called more than once without
  9         error.  Some kinds of file objects (for example, opened by popen())
 10         may return an exit status upon closing.
 11         """
 12
 13     def fileno(self): # real signature unknown; restored from __doc__
 14         文件描述符
 15          """
 16         fileno() -> integer "file descriptor".
 17
 18         This is needed for lower-level file interfaces, such os.read().
 19         """
 20         return 0
 21
 22     def flush(self): # real signature unknown; restored from __doc__
 23         刷新文件内部缓冲区
 24         """ flush() -> None.  Flush the internal I/O buffer. """
 25         pass
 26
 27
 28     def isatty(self): # real signature unknown; restored from __doc__
 29         判断文件是否是同意tty设备
 30         """ isatty() -> true or false.  True if the file is connected to a tty device. """
 31         return False
 32
 33
 34     def next(self): # real signature unknown; restored from __doc__
 35         获取下一行数据,不存在,则报错
 36         """ x.next() -> the next value, or raise StopIteration """
 37         pass
 38
 39     def read(self, size=None): # real signature unknown; restored from __doc__
 40         读取指定字节数据
 41         """
 42         read([size]) -> read at most size bytes, returned as a string.
 43
 44         If the size argument is negative or omitted, read until EOF is reached.
 45         Notice that when in non-blocking mode, less data than what was requested
 46         may be returned, even if no size parameter was given.
 47         """
 48         pass
 49
 50     def readinto(self): # real signature unknown; restored from __doc__
 51         读取到缓冲区,不要用,将被遗弃
 52         """ readinto() -> Undocumented.  Don‘t use this; it may go away. """
 53         pass
 54
 55     def readline(self, size=None): # real signature unknown; restored from __doc__
 56         仅读取一行数据
 57         """
 58         readline([size]) -> next line from the file, as a string.
 59
 60         Retain newline.  A non-negative size argument limits the maximum
 61         number of bytes to return (an incomplete line may be returned then).
 62         Return an empty string at EOF.
 63         """
 64         pass
 65
 66     def readlines(self, size=None): # real signature unknown; restored from __doc__
 67         读取所有数据,并根据换行保存值列表
 68         """
 69         readlines([size]) -> list of strings, each a line from the file.
 70
 71         Call readline() repeatedly and return a list of the lines so read.
 72         The optional size argument, if given, is an approximate bound on the
 73         total number of bytes in the lines returned.
 74         """
 75         return []
 76
 77     def seek(self, offset, whence=None): # real signature unknown; restored from __doc__
 78         指定文件中指针位置
 79         """
 80         seek(offset[, whence]) -> None.  Move to new file position.
 81
 82         Argument offset is a byte count.  Optional argument whence defaults to
 83 (offset from start of file, offset should be >= 0); other values are 1
 84         (move relative to current position, positive or negative), and 2 (move
 85         relative to end of file, usually negative, although many platforms allow
 86         seeking beyond the end of a file).  If the file is opened in text mode,
 87         only offsets returned by tell() are legal.  Use of other offsets causes
 88         undefined behavior.
 89         Note that not all file objects are seekable.
 90         """
 91         pass
 92
 93     def tell(self): # real signature unknown; restored from __doc__
 94         获取当前指针位置
 95         """ tell() -> current file position, an integer (may be a long integer). """
 96         pass
 97
 98     def truncate(self, size=None): # real signature unknown; restored from __doc__
 99         截断数据,仅保留指定之前数据
100         """
101         truncate([size]) -> None.  Truncate the file to at most size bytes.
102
103         Size defaults to the current file position, as returned by tell().
104         """
105         pass
106
107     def write(self, p_str): # real signature unknown; restored from __doc__
108         写内容
109         """
110         write(str) -> None.  Write string str to file.
111
112         Note that due to buffering, flush() or close() may be needed before
113         the file on disk reflects the data written.
114         """
115         pass
116
117     def writelines(self, sequence_of_strings): # real signature unknown; restored from __doc__
118         将一个字符串列表写入文件
119         """
120         writelines(sequence_of_strings) -> None.  Write the strings to the file.
121
122         Note that newlines are not added.  The sequence can be any iterable object
123         producing strings. This is equivalent to calling write() for each string.
124         """
125         pass
126
127     def xreadlines(self): # real signature unknown; restored from __doc__
128         可用于逐行读取文件,非全部
129         """
130         xreadlines() -> returns self.
131
132         For backward compatibility. File objects now include the performance
133         optimizations previously implemented in the xreadlines module.
134         """
135         pass
  1 class TextIOWrapper(_TextIOBase):
  2     """
  3     Character and line based layer over a BufferedIOBase object, buffer.
  4
  5     encoding gives the name of the encoding that the stream will be
  6     decoded or encoded with. It defaults to locale.getpreferredencoding(False).
  7
  8     errors determines the strictness of encoding and decoding (see
  9     help(codecs.Codec) or the documentation for codecs.register) and
 10     defaults to "strict".
 11
 12     newline controls how line endings are handled. It can be None, ‘‘,
 13     ‘\n‘, ‘\r‘, and ‘\r\n‘.  It works as follows:
 14
 15     * On input, if newline is None, universal newlines mode is
 16       enabled. Lines in the input can end in ‘\n‘, ‘\r‘, or ‘\r\n‘, and
 17       these are translated into ‘\n‘ before being returned to the
 18       caller. If it is ‘‘, universal newline mode is enabled, but line
 19       endings are returned to the caller untranslated. If it has any of
 20       the other legal values, input lines are only terminated by the given
 21       string, and the line ending is returned to the caller untranslated.
 22
 23     * On output, if newline is None, any ‘\n‘ characters written are
 24       translated to the system default line separator, os.linesep. If
 25       newline is ‘‘ or ‘\n‘, no translation takes place. If newline is any
 26       of the other legal values, any ‘\n‘ characters written are translated
 27       to the given string.
 28
 29     If line_buffering is True, a call to flush is implied when a call to
 30     write contains a newline character.
 31     """
 32     def close(self, *args, **kwargs): # real signature unknown
 33         关闭文件
 34         pass
 35
 36     def fileno(self, *args, **kwargs): # real signature unknown
 37         文件描述符
 38         pass
 39
 40     def flush(self, *args, **kwargs): # real signature unknown
 41         刷新文件内部缓冲区
 42         pass
 43
 44     def isatty(self, *args, **kwargs): # real signature unknown
 45         判断文件是否是同意tty设备
 46         pass
 47
 48     def read(self, *args, **kwargs): # real signature unknown
 49         读取指定字节数据
 50         pass
 51
 52     def readable(self, *args, **kwargs): # real signature unknown
 53         是否可读
 54         pass
 55
 56     def readline(self, *args, **kwargs): # real signature unknown
 57         仅读取一行数据
 58         pass
 59
 60     def seek(self, *args, **kwargs): # real signature unknown
 61         指定文件中指针位置
 62         pass
 63
 64     def seekable(self, *args, **kwargs): # real signature unknown
 65         指针是否可操作
 66         pass
 67
 68     def tell(self, *args, **kwargs): # real signature unknown
 69         获取指针位置
 70         pass
 71
 72     def truncate(self, *args, **kwargs): # real signature unknown
 73         截断数据,仅保留指定之前数据
 74         pass
 75
 76     def writable(self, *args, **kwargs): # real signature unknown
 77         是否可写
 78         pass
 79
 80     def write(self, *args, **kwargs): # real signature unknown
 81         写内容
 82         pass
 83
 84     def __getstate__(self, *args, **kwargs): # real signature unknown
 85         pass
 86
 87     def __init__(self, *args, **kwargs): # real signature unknown
 88         pass
 89
 90     @staticmethod # known case of __new__
 91     def __new__(*args, **kwargs): # real signature unknown
 92         """ Create and return a new object.  See help(type) for accurate signature. """
 93         pass
 94
 95     def __next__(self, *args, **kwargs): # real signature unknown
 96         """ Implement next(self). """
 97         pass
 98
 99     def __repr__(self, *args, **kwargs): # real signature unknown
100         """ Return repr(self). """
101         pass
102
103     buffer = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
104
105     closed = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
106
107     encoding = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
108
109     errors = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
110
111     line_buffering = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
112
113     name = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
114
115     newlines = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
116
117     _CHUNK_SIZE = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
118
119     _finalizing = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
120 复制代码
121 三、管理上下文
122
123 为了避免打开文件后忘记关闭,可以通过管理上下文,即:
124
125 1
126 2
127 3
128 with open(‘log‘,‘r‘) as f:
129
130     ...
131 如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
132
133 在Python 2.7 及以后,with又支持同时对多个文件的上下文进行管理,即:
134
135 1
136 2
137 with open(‘log1‘) as obj1, open(‘log2‘) as obj2:
138     pass

lambda表达式

学习条件预算时候,对于简单的if else 语句,可以使用三元运算来表示,即

# 普通条件语句
if 1 == 1:
    name = ‘sunlieqi‘
else:
    name = ‘alex‘

# 三元运算
name = ‘sunlieqi‘ if 1 == 1 else ‘alex‘

对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

# ###################### 普通函数 ######################
# 定义函数(普通方式)
def func(arg):
    return arg + 1

# 执行函数
result = func(123)

# ###################### lambda ######################

# 定义函数(lambda表达式)
my_lambda = lambda arg : arg + 1

# 执行函数
result = my_lambda(112)

递归

利用函数编写如下数列:

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368...

def func(arg1,arg2):
    if arg1 == 0:
        print arg1, arg2
    arg3 = arg1 + arg2
    print arg3
    func(arg2, arg3)

func(0,1)
时间: 2024-10-23 01:06:30

python 基础 文件编辑的相关文章

python基础-文件读写'r' 和 'rb'区别

一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据.'w':表示要向文件写入数据,并截断以前的内容'a':表示要向文件写入数据,添加到当前内容尾部'r+':表示对文件进行可读写操作(删除以前的所有数据)'r+a':表示对文件可进行读写操作(添加到当前文件尾部)'b':表示要读写二进制数据 2.读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认

python基础(文件输入/输出 内建类型 字典操作使用方法)

本文主要介绍了python基础入门,包括文件输入/输出.内建类型.字典操作等使用方法 一.变量和表达式 代码如下: >>> 1 + 1 2>>> print 'hello world' hello world>>> x = 1               >>> y = 2>>> x + y3 Python是强类型语言,无法根据上下文自动解析转换成合适的类型. Python是一种动态语言,在程序运行过程中,同一个变量

Python基础 - 文件处理(上)

读写文件, 文件备份, 上传资料这些操作应该是大家日常工作中每天都要做的事情. 而文件呢, 又有不同的类型(后缀名), 比如 .txt, .xls, .xlsx, .csv, .json, .sql .... 等等各种文件. 在我日常的数据工作中, 读取文件数据, 处理, 写入文件这样的操作几乎是每天都要做的事情. 我们的从编程入门的角度来讲, 文件处理算是一个最能快速应用到工作的了. 尤其是 不同编程的小伙伴, 如果要是学会了文件处理, 那绝对能大幅度提高工作效率的. 突然想吐槽一下 文件处理

课堂笔记:Python基础-文件操作

对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧明. 白首为功名,旧山松竹老,阻归程. 欲将心事付瑶琴. 知音少,弦断有谁听. f = open('小重山') #打开文件 data=f.read()#获取文件内容 f.close() #关闭文件 注意 :在Windows系统中,hello文件是utf8保存的,打开文件时open函数是通过操作系统打开的文件,而win操

Python基础-文件操作

1. 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 语法 open(filename, mode) 实例 2. 文件打开模式 r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a "U"表示在读取时,可以将 \r \n \r\n自动转换

python基础---文件处理

文件处理 f=open('文件','r')         打开一个文件 f.close()                关闭文件,相当于保存 1.字符编码 在文件处理过程中,首先有一个重要的概念,就是字符编码 字符编码:把人类的字符编译成计算机能认识的数字 字符编码表:就是一张字符与数字对应关系的表 ascii gbk utf-8          (硬盘中常用编码) unicode       (内存中常用编码) unicode ---->encode('utf-8') 编码---->

python基础-文件处理与函数

1. 文件处理 1.1 文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 1.2 文件读取模式r r文本模式的读,在文件不存在,不会创建新文件 f = open('a.txt','r',encoding='utf-8') f.readable() # 判读文件是否可读 f.writable() # 判读文件是否可写 f.readline() # 一次读取一行 f.readlines() # 一次读取所有值 f.close()  1.3 文件读取模

python基础--文件夹处理

1.获取当前文件目录 import os print(os.path.abspath(__file__)) >>: D:\PycharmProjects\untitled2\os_sys.py 2.获取当前文件的文件夹,dirname)()用于切割目录,返回去掉文件名后的目录名 import os print(os.path.dirname(os.path.abspath(__file__))) >>: D:\PycharmProjects\untitled2 原文地址:http:

第三章 Python基础——文件操作&函数 续

3.6函数进阶 名称空间:name space 例:若变量X=1,1存放于内存中,那存放X与1绑定关系的地方就叫做名称空间. 名称空间共三种,分别如下: locals:是函数内名称空间,包括局部变量和形参 globals:全局变量,函数定义所在模块的名字空间 builtins:内置模块的名字空间 不同变量的作用域不同就是由于这个变量所在的命名空间决定的. 作用域即范围: 全局范围:全局存活,全局有效 局部范围:临时存活,局部有效 注:查看作用域方法 globals(),locals() 作用域查