python 文件处理 -- 03 文件处理模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 文件处理 -- 03 文件处理模块相关的知识,希望对你有一定的参考价值。

1.os模块

1.1作用

文件目录管理、进程管理

http://www.cnblogs.com/now-fighting/p/3531464.html

1.2常用

os.name--判断现在正在使用的平台。Windows--nt; Linux--posix

os.getcwd()--得到当前工作的目录。

os.listdir(path)--指定所有目录下所有的文件和目录名,返回list。

os.remove(path)--删除指定文件

os.mkdir(path [, mode=0777])--创建目录

os.makedirs(path [, mode=0777])--递归创建目录

os.path.isfile(path)--判断指定对象是否为文件。是返回True,否则False

os.path.isdir(path)--判断指定对象是否为目录。是True,否则False。

os.path.exists(path)--检验指定的对象是否存在。是True,否则False.

os.path.split(path)--返回路径的目录和文件名,元组。例:

技术分享
 1 import os
 2 
 3 import sys
 4 
 5  
 6 
 7 if __name__ == "__main__":
 8 
 9     print os.path.realpath(sys.argv[0])
10 
11     print os.path.split(os.path.realpath(sys.argv[0]))
12 
13     print os.path.split(os.path.realpath(sys.argv[0]))[0]
14 
15  
16 
17 ***执行结果
18 
19 /home/jihite/ftp/del.py
20 
21 (/home/jihite/ftp, del.py)
22 
23 /home/jihite/ftp 
24 
25  
26 
27 os.system(command)——执行shell命令。例:
28 
29 >>> os.system("echo ‘hello world!‘")
30 
31 hello world!
32 
33 0
34 
35 注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式:
36 
37 var=123
38 
39 os.environ[var]=str(var) //注意此处[]内得是 “字符串”
40 
41 os.system(echo $var)
os.path.spilt使用举例

 

os.chdir(path)--改变目录到指定目录

os.path.getsize(filename)--获得文件的大小,如果为目录,返回0

os.path.join(path, name)--连接目录和文件(目录)名。

os.walk(path)--递归遍历某文件夹(包括子文件夹)

walk(top, topdown=True, onerror=None, followlinks=False)

技术分享
 1 >>> os.getcwd()
 2 
 3 E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle
 4 
 5 >>> for dir_path,dir_name,file_names in os.walk(os.getcwd()):
 6 
 7 ...         print *****dir_path\\n
 8 
 9 ...         print dir_path
10 
11 ...         print *****dir_name\\n
12 
13 ...         print dir_name
14 
15 ...         print *****file_name\\n
16 
17 ...         print file_names
18 
19 ...
20 
21 *****dir_path
22 
23  
24 
25 E:\\yc_study\\python\\study_imooc\\file_handle
26 
27 *****dir_name
28 
29  
30 
31 [1]
32 
33 *****file_name
34 
35  
36 
37 [1.txt, argv.py, create_utf_8.txt, helloworld.py, unicode_test.txt]
38 
39 *****dir_path
40 
41  
42 
43 E:\\yc_study\\python\\study_imooc\\file_handle\\1
44 
45 *****dir_name
46 
47  
48 
49 [2]
50 
51 *****file_name
52 
53  
54 
55 []
56 
57 *****dir_path
58 
59  
60 
61 E:\\yc_study\\python\\study_imooc\\file_handle\\1\\2
62 
63 *****dir_name
64 
65  
66 
67 [3]
68 
69 *****file_name
70 
71  
72 
73 []
74 
75 *****dir_path
76 
77  
78 
79 E:\\yc_study\\python\\study_imooc\\file_handle\\1\\2\\3
80 
81 *****dir_name
82 
83  
84 
85 []
86 
87 *****file_name
88 
89  
90 
91 []
92 
93  
os.walk使用举例

 

2.shutil模块

2.1作用

移动、复制、打包、压缩、解压

http://blog.csdn.net/xmnathan/article/details/36217631

2.2常用命令

shutil.rmtree("dir")--删除目录。空目录、有内容的目录都可以删

copyfile(src, dst)  # 拷贝文件

        复制文件内容(不包含元数据)从src到dst。

        DST必须是完整的目标文件名。

        如果src和dst是同一文件,就会引发错误shutil.Error。

        dst必须是可写的,否则将引发异常IOError。

        如果dst已经存在,它会被替换。

        特殊文件,例如字符或块设备和管道不能使用此功能,因为copyfile会打开并阅读文件。

        src和dst的是字符串形式的路径名。

copyfile()调用了底函数层copyfileobj()。

        shutil.copyfile(‘shutil_copyfile.py‘, ‘shutil_copyfile.py.copy‘)

copyfileobj(fsrc, fdst, length=16384)  # 将文件内容拷贝到另一个文件

        需要引入StringIO模块才能使用

        复制文件内容(不包含元数据)从类文件对象src到类文件对dst。

        可选参数length指定缓冲区的大小,负数表示一次性读入。

        默认会把数据切分成小块拷贝,以免占用太多内存。

        注意:拷贝是从fsrc的当前文件开始。

copy(src, dst)

        复制文件src到文件或目录dst

        权限位也会复制。

        如果dst是目录,使用src相同的文件名创建(或覆盖)。

        src和dst的是字符串形式的路径名。

        os.mkdir(‘example‘)

        print ‘BEFORE:‘, os.listdir(‘example‘)

        shutil.copy(‘shutil_copy.py‘, ‘example‘)

copy2(src, dst)

        类似shutil.copy,元数据也复制。

        实际上先调用shutil.copy,然后使用copystat。

        shutil.copy2(‘shutil_copy2.py‘, ‘example‘)

copytree(src, dst, symlinks=False, ignore=None)  # 递归复制

        Recursively copy a directory tree using copy2().

3.glob模块

可以查找符合自己目的的文件,类似于Windows下的文件搜索,而且也支持通配符,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。

3.1glob.glob(path)

Return a list of paths matching a pathname pattern.

3.2glob.igblob()

Return an iterator which yields the paths matching a pathname pattern.

技术分享
 1 >>> import os
 2 
 3 >>> os.chdir(rE:\\yc_study\\python\\study_imooc\\file_handle)
 4 
 5 >>> os.getcwd()
 6 
 7 E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle
 8 
 9 >>> import glob
10 
11 >>> os.listdir(os.getcwd())
12 
13 [1, 1.txt, argv.py, create_utf_8.txt, helloworld.py, unicode_test.txt]
14 
15 >>> glob.glob(r%s\\*.py % os.getcwd())
16 
17 [E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\argv.py, E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\helloworld.py]
18 
19 >>> glob.glob(r%s\\*.txt % os.getcwd())
20 
21 [E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\1.txt, E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\create_utf_8.txt, E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\unicode_test.txt]
glob.glob使用举例

 

技术分享
 1 >>> glob.iglob(r%s\\*.txt % os.getcwd())
 2 
 3 <generator object iglob at 0x000000000256AF78>
 4 
 5 >>> for i in glob.iglob(r%s\\*.txt % os.getcwd()):
 6 
 7 ...         print i
 8 
 9 ...
10 
11 E:\\yc_study\\python\\study_imooc\\file_handle\\1.txt
12 
13 E:\\yc_study\\python\\study_imooc\\file_handle\\create_utf_8.txt
14 
15 E:\\yc_study\\python\\study_imooc\\file_handle\\unicode_test.txt
glob.iglob使用举例

4.python处理各类文件

4.1ConfigParse模块读取配置文件(.ini)

基本使用&Unicode编码问题

http://www.cnblogs.com/victorwu/p/5762931.html

深度解读

http://www.cnblogs.com/yyds/p/6627208.html

4.2python处理xml文件

http://www.cnblogs.com/yyds/p/6627208.html

以上是关于python 文件处理 -- 03 文件处理模块的主要内容,如果未能解决你的问题,请参考以下文章

代写Python-股票数据处理Python代码代写

python文件处理os模块

Python学习第38天(文件处理,ossyspickle模块复习)

python基础学习shutil高级的文件,目录,压缩包处理模块

python-配置文件的处理configpasser模块

通过文件路径导入模块时使用 Python 多处理