# file: whereami.py
import os, sys
print(os.getcwd())
print(sys.path[:6])
# 執行結果
my os.getcwd=> /home
my sys.path=> ['/home/lab', '/home/lab/caffe/python', '/home', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload']
在首行使用unix env命令而非因編碼的python路徑,可以降低指令碼對機器的依賴性。#!/usr/bin/env python
。
os.environ
可以訪問環境變數。環境變數可以修改,可以被用作簡易的程序通訊。
python程式中對shell所做的設定只對程式本身以及它所衍生的子程式有效。如果需要設定在程式退出後依然有效,需要借助平台相關的擴充套件來實現。
雖然os.environ
的修改會呼叫os.putenv
,但直接呼叫os.putenv
卻不會更新os.environ
。
sys
模組提供了python的標準輸入、輸出和錯誤流,同時也是通用的程式通訊方式。
標準流是預先開啟的python檔案物件,它們在python啟動時自動連線到你的程式上。標準流預設在python啟動時被繫結到控制台視窗。
>>> print('hello, world!')
hello, world!
>>> sys.stdout.write('hello, world!\n')
hello, world!
14>>> input('input: ')
input: hello
'hello'
>>> print('input'); sys.stdin.readline()[:-1]
input
hello
'hello'
io.stringio
和io.bytesio
工具類可以將檔案物件和記憶體字串或者記憶體位元組緩衝區對映。
>>>
from io import stringio, bytesio
>>> buff = stringio()
>>> buff.write('hello, world')
12>>> buff.write('spam')
>>> buff.getvalue()
'hello, worldspam'
>>> buff = stringio('hello, world\nspam')
>>> buff.readline()
'hello, world\n'
>>> buff.readline()
'spam'
>>> buff = stringio()
>>> >>> tmp = sys.stdout
>>> sys.stdout = buff
>>> print(22, 'good', 'yes')
>>> sys.stdout = tmp
>>> >>> buff.getvalue()
'22 good yes\n'
>>> stream = bytesio()
>>> stream.write(b'spam')
4>>> stream.getvalue()
b'spam'
>>> stream = bytesio(b'spam')
>>> stream.read()
b'spam'
Python 程式設計筆記(二)
命名規則 tips 下劃線作為變數名的開始對直譯器由特殊的意義,而且是內建識別符號所使用的符號 關鍵字 python的關鍵字都儲存在keyword模組中 false def if raise none del import return true elif in tryand else iswhil...
程式設計筆記二
題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m class solution 題目 用兩個棧來...
《python核心程式設計》學習筆記(二) re
1.match 函式從字串的開始部分開始匹配,匹配成功,則返回匹配物件 匹配不成功,則返回none。m re.match foo on the table food m none2.search 函式用它的字串引數,在任意位置對給定的正規表示式模式 搜尋第一次出現的匹配情況。如果搜尋到成功的匹配,就...