python技巧分享(十七)

這是一個系列文章,主要分享python的使用建議和技巧,每次分享3點,希望你能有所收穫。

1 獲取文件絕對路徑

#!/usr/bin/python
# coding=utf-8

import os

absolute_path = os.path.realpath(__file__)
print absolute_path

運行示例代碼輸出如下:

$ ./python-tips-17.py
/git/python_practice/demo/python-tips-17.py

由示例中可以看到,輸出文件的絕對路徑。

2 修改進程名字

#!/usr/bin/python
# coding=utf-8

import time
import setproctitle
import multiprocessing


def test_process():
    p = multiprocessing.current_process()
    setproctitle.setproctitle(p.name)
    print 'starting process name <{}>, pid <{}>'.format(p.name, p.pid)
    time.sleep(100)


if __name__ == '__main__':
    p = multiprocessing.Process(
        name='test_process',
        target=test_process,
    )
    p.daemon = False
    p.start()
    time.sleep(100)

運行示例代碼輸出如下:

$ ./python-tips-17.py
starting process name <test_process>, pid <4281>

在另外一個終端查看進程名爲test_process,如下:

$ ps -ef | grep [4]281
root      4281  4280  0 17:04 pts/20   00:00:00 test_process

如果註釋掉setproctitle.setproctitle(p.name),運行示例如下:

$ ./python-tips-17.py
starting process name <test_process>, pid <4700>

在另一個終端查看進程名字,可以看到進程名字是/usr/bin/python ./python-tips-17.py,而不是設置的test_process。

$ ps -ef | grep [4]700
root      4700  4699  0 17:06 pts/20   00:00:00 /usr/bin/python ./python-tips-17.py

即通過setproctitle.setproctitle(p.name)實現了修改python進程的名字。

3 多行字符串寫法

#!/usr/bin/python
# coding=utf-8

long_str = ('this is a '
            'very long '
            'string')

print long_str

運行示例代碼輸出如下:

$ ./python-tips-17.py
this is a very long string

pep8建議代碼長度不超過79個字符,如果需要寫一個長字符串,往往會超過79個字符。由示例中可以看到,通過該方式可以實現長字符串的書寫,並且不違反pep8。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章