
Python3 IO编程
文件读写
读文件:read()会一次性读取全部内容
- with 和 try…catch一样,更简介,自动调用close方法
1
2with open('/path/to/file', 'r') as f:
print(f.read())
readlines():每次读取一行
1 |
|
二进制文件
1 |
|
字符编码
1 |
|
写文件
1 |
|
操作文件和目录
- 环境变量
1
2
3
4
5
6
7
8>>> os.environ
environ({'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'TERM_PROGRAM_VERSION': '326', 'LOGNAME': 'michael', 'USER': 'michael', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin', ...})
#获取环境变量
>>> os.environ.get('PATH')
'/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin'
>>> os.environ.get('x', 'default')
'default'
操作文件和目录
- os.path.join(),不要直接使用\或者/
1
2
3
4
5
6
7
8
9
10# 查看当前目录的绝对路径:
>>> os.path.abspath('.')
'/Users/michael'
# 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
>>> os.path.join('/Users/michael', 'testdir')
'/Users/michael/testdir'
# 然后创建一个目录:
>>> os.mkdir('/Users/michael/testdir')
# 删掉一个目录:
>>> os.rmdir('/Users/michael/testdir') - os.path.split(),不要直接使用\或者/
- os.path.splitext(),不要直接使用\或者/
1
2
3
4
5
6>>> os.path.split('/Users/michael/testdir/file.txt')
('/Users/michael/testdir', 'file.txt')
>>> os.path.splitext('/path/to/file.txt')
('/path/to/file', '.txt')
重命名和删除
1 |
|
- 示例
1
2
3
4
5
6
7#列出当前目录下的所有目录
>>> [x for x in os.listdir('.') if os.path.isdir(x)]
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
#要列出所有的.py文件
>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']
序列化
JSON
1 |
|
JSON进阶,class -> JSON
1 |
|