序号 | 类名称 | | 功能说明 | | 语法 & 举例 |
01 | open 函数 | | ====<<<< Description >>>>====
用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
open (name[, mode[, buffering]]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ name:一个包含了你要访问的文件名称的字符串值。 ◈ mode:mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。 ◈ buffering:如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。 ----------------------------------------------------------------------------------
====<<<< mode >>>>====
◈ r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。文件不存在报错。 ◈ r+:打开一个文件用于读写。文件指针将会放在文件的开头。文件不存在报错。 ◈ w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ◈ w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ◈ a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ◈ a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ----------------------------------------------------------------------------------
====<<<< References >>>>====
参考:python文件打开方式详解——a、a+、r+、w+区别 参考:python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) | |
# 获取栅格数据
arcpy.env.workspace=r"D:\01-Working\2017\20171204-IDL_Average\temp\TSM"
rs = arcpy.ListRasters()
# 遍历栅格数据获取统计信息
# 首先需要建立栅格文件
# 将数据结果保留两位小数
# 输出到txt文档中
fo = open("D:\\01-Working\\2017\\2017_Average\\temp\\tsm_stats.txt", "w+")
for r in rs:
ro = arcpy.Raster(r)
fo.writelines(ro.name + "\n")
fo.writelines("MAX: " + str(round(ro.maximum, 2)) + "\n")
fo.writelines("MIN: " + str(round(ro.minimum, 2)) + "\n")
fo.writelines("MEAN: " + str(round(ro.mean, 2)) + "\n\n")
fo.close()
读入文件示例:
>>> import os
>>> fo = open("D:\\03-Study\\Python\\test\\test.txt", "r+")
>>># 读取全部为一个字符串(read)
>>> lines = fo.read()
>>> lines
'Line 1: aaaaaa\nLine 2: bbbbbb\nLine 3: cccccc\nLine
>>> print lines
Line 1: aaaaaa
Line 2: bbbbbb
Line 3: cccccc
>>> fo.tell()
110L
>>># 指针返回初始位置
>>> fo.seek(0)
>>> fo.tell()
0L
>>># 读取数据的一行(readline)
>>> lines_new = fo.readline()
>>> lines_new
'Line 1: aaaaaa\n'
>>># 读取剩下的数据为一个列表(readlines)
>>> lines_new2 = fo.readlines()
>>> lines_new2
['Line 2: bbbbbb\n', 'Line 3: cccccc\n']
>>> fo.close()
写入文件示例:
>>> fo = open("D:\\03-Study\\Python\\test\\test.txt", "w+")
>>> a = "Alex Lee"
>>> b = ["a", "b", "c"]
>>> fo.write(a) #写入全部(write)
>>> fo.write("\n") #换行符
>>> fo.writelines(b) #写入列表,无换行符(writelines)
>>> for i in range(0, len(b)):
... b[i] = b[i] + "\n"
...
>>> print b
['a\n', 'b\n', 'c\n']
>>> fo.write("\n") #换行符
>>> fo.writelines(b) #写入列表,有换行符
>>> fo.close()
>>> fo = open("D:\\03-Study\\Python\\test\\test.txt", "r+")
>>> print fo.read()
Alex Lee
abc
a
b
c
|
02 | File 对象 | | ====<<<< Description >>>>====
file 对象使用 open 函数来创建。 ---------------------------------------------------------------------------------- ====<<<< Properties >>>>====
◈ file.name:返回文件的名称。 ◈ file.mode:返回被打开文件的访问模式。 ◈ file.closed:返回true如果文件已被关闭,否则返回false。 ---------------------------------------------------------------------------------- ====<<<< Methods >>>>====
◈ file.writelines (sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 ◈ file.write (str):将字符串写入文件,没有返回值。要自己加换行符 ◈ file.truncate ([size]):用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。 ◈ file.tell ():返回文件的当前位置,即文件指针当前位置。 ◈ file.seek (offset[, whence]):用于移动文件读取指针到指定位置。 ◈ file.readlines ([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。 ◈ file.readline ([size]):读取整行,包括 "\n" 字符。 ◈ file.read ([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。 ◈ file.next ():返回文件下一行。 ◈ file.close ():关闭文件。关闭后文件不能再进行读写操作。 ---------------------------------------------------------------------------------- ====<<<< References >>>>====
参考:python中readline判断文件读取结束的方法 | |
03 | rename 方法 | | ====<<<< Description >>>>====
用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。(相当于移动文件) ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.rename (src, dst) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ src:要修改的目录名。 ◈ dst:修改后的目录名。
| |
>>> import os
>>> os.rename(r"D:\test.txt", r"D:\test1.txt")
>>> os.rename(r"D:\test1.txt", r"D:\test2.txt")
|
04 | remove 方法 | | ====<<<< Description >>>>====
用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.remove (path) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:要移除的文件路径。
参考:python 删除文件、目录(shutil.rmtree()) | |
# 实现删除文件夹内的HDF文件
import os
rootdir = r"D:\tmp\tmp"
for file in os.listdir(rootdir):
if file.find("hdf") > 0:
os.remove(os.path.join(rootdir, file))
|
05 | mkdir 方法 | | ====<<<< Description >>>>====
用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.mkdir (path[, mode]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:要创建的目录。 ◈ mode:要为目录设置的权限数字模式。 | |
>>> import os
>>> os.mkdir(r"D:\folder")
|
| makedirs 方法 | | ====<<<< Description >>>>====
os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.makedirs (path[, mode]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:要创建的目录。 ◈ mode:要为目录设置的权限数字模式。 | | |
06 | chdir 方法 | | ====<<<< Description >>>>====
用于改变当前工作目录到指定的路径。(工作空间修改) ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.chdir (path) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:要切换到的新路径。
| |
>>> import os
>>> print os.getcwd()
D:\01-Working\2018\20180115-浓烟专题图
>>> os.chdir(r"D:\03-Study\Python\test")
>>> os.rmdir("folder")
|
07 | getcwd 方法 | | ====<<<< Description >>>>====
用于返回当前工作目录。(import sys) ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.getcwd () | |
08 | rmdir 方法 | | ====<<<< Description >>>>====
用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.rmdir (path) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:要删除的目录路径。 | |
09 | listdir 方法 | | ====<<<< Description >>>>====
用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
os.listdir (path) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ path:需要列出的目录路径。 | |
>>> import os
>>> print os.listdir(r"D:\test")
['11.txt', 'cnblog1.txt', 'frame.ui']
|
10 | input 方法 | | ====<<<< Description >>>>====
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。 Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。 raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。 注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。 除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>===
input ([prompt]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ prompt:可选,字符串,可作为一个提示语。 | |
>>> a = input("input:")
input:123
>>> type(a)
<type 'int'>
>>> a
123
>>> a = input("input:")
input:"alex"
>>> a
'alex'
>>> a = input("input:")
input:alex
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
a = input("input:")
File "<string>", line 1, in <module>
NameError: name 'alex' is not defined
|
11 | raw_input 方法 | | ====<<<< Description >>>>====
用来获取控制台的输入。 将所有输入作为字符串看待,返回字符串类型。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>====
raw_input ([prompt]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ prompt:可选,字符串,可作为一个提示语。 | |
>>> a = raw_input("input:")
input:123
>>> type(a)
<type 'str'>
>>> a
'123'
>>> a = raw_input("input:")
input:alex
>>> a
'alex'
|
------ | ------------------------------ | | | | |