2020-10-19 21:04:12

This commit is contained in:
wizardforcel
2020-10-19 21:04:12 +08:00
parent 2fe0addb6f
commit 3bf283b942
100 changed files with 0 additions and 0 deletions

227
docs/da/065.md Normal file
View File

@@ -0,0 +1,227 @@
# 与操作系统进行交互os 模块
`os` 模块提供了对系统文件进行操作的方法:
In [1]:
```
import os
```
## 文件路径操作
* `os.remove(path)``os.unlink(path)` :删除指定路径的文件。路径可以是全名,也可以是当前工作目录下的路径。
* `os.removedirs`:删除文件,并删除中间路径中的空文件夹
* `os.chdir(path)`:将当前工作目录改变为指定的路径
* `os.getcwd()`:返回当前的工作目录
* `os.curdir`:表示当前目录的符号
* `os.rename(old, new)`:重命名文件
* `os.renames(old, new)`:重命名文件,如果中间路径的文件夹不存在,则创建文件夹
* `os.listdir(path)`:返回给定目录下的所有文件夹和文件名,不包括 `'.'``'..'` 以及子文件夹下的目录。(`'.'``'..'` 分别指当前目录和父目录)
* `os.mkdir(name)`:产生新文件夹
* `os.makedirs(name)`:产生新文件夹,如果中间路径的文件夹不存在,则创建文件夹
当前目录:
In [2]:
```
os.getcwd()
```
Out[2]:
```
'/home/lijin/notes-python/05\. advanced python'
```
当前目录的符号:
In [3]:
```
os.curdir
```
Out[3]:
```
'.'
```
当前目录下的文件:
In [4]:
```
os.listdir(os.curdir)
```
Out[4]:
```
['05.01 overview of the sys module.ipynb',
'05.05 datetime.ipynb',
'05.13 decorator usage.ipynb',
'.ipynb_checkpoints',
'05.03 comma separated values.ipynb',
'05.02 interacting with the OS - os.ipynb',
'05.10 generators.ipynb',
'05.15 scope.ipynb',
'05.12 decorators.ipynb',
'05.09 iterators.ipynb',
'my_database.sqlite',
'05.11 context managers and the with statement.ipynb',
'05.16 dynamic code execution.ipynb',
'05.14 the operator functools itertools toolz fn funcy module.ipynb',
'05.04 regular expression.ipynb',
'05.07 object-relational mappers.ipynb',
'05.08 functions.ipynb',
'05.06 sql databases.ipynb']
```
产生文件:
In [5]:
```
f = open("test.file", "w")
f.close()
print "test.file" in os.listdir(os.curdir)
```
```
True
```
重命名文件:
In [6]:
```
os.rename("test.file", "test.new.file")
print "test.file" in os.listdir(os.curdir)
print "test.new.file" in os.listdir(os.curdir)
```
```
False
True
```
删除文件:
In [7]:
```
os.remove("test.new.file")
```
## 系统常量
当前操作系统的换行符:
In [8]:
```
# windows 为 \r\n
os.linesep
```
Out[8]:
```
'\n'
```
当前操作系统的路径分隔符:
In [9]:
```
os.sep
```
Out[9]:
```
'/'
```
当前操作系统的环境变量中的分隔符(`';'``':'`
In [10]:
```
os.pathsep
```
Out[10]:
```
':'
```
## 其他
`os.environ` 是一个存储所有环境变量的值的字典,可以修改。
In [11]:
```
os.environ["USER"]
```
Out[11]:
```
'lijin'
```
`os.urandom(len)` 返回指定长度的随机字节。
## os.path 模块
不同的操作系统使用不同的路径规范,这样当我们在不同的操作系统下进行操作时,可能会带来一定的麻烦,而 `os.path` 模块则帮我们解决了这个问题。
In [12]:
```
import os.path
```
### 测试
* `os.path.isfile(path)` :检测一个路径是否为普通文件
* `os.path.isdir(path)`:检测一个路径是否为文件夹
* `os.path.exists(path)`:检测路径是否存在
* `os.path.isabs(path)`:检测路径是否为绝对路径
### split 和 join
* `os.path.split(path)`:拆分一个路径为 `(head, tail)` 两部分
* `os.path.join(a, *p)`:使用系统的路径分隔符,将各个部分合成一个路径
### 其他
* `os.path.abspath()`:返回路径的绝对路径
* `os.path.dirname(path)`:返回路径中的文件夹部分
* `os.path.basename(path)`:返回路径中的文件部分
* `os.path.slitext(path)`:将路径与扩展名分开
* `os.path.expanduser(path)`:展开 `'~'``'~user'`