本文目錄一覽:
- 1、Python如何使用注釋?
- 2、python sns.pointplot如何添加文本信息
- 3、如何用Python寫腳本遍歷詞典提取中文文本中一樣的詞語並做出標記
- 4、如何用Python寫腳本提取中文文本文件中有特殊標籤標記的字段
Python如何使用注釋?
1.單行注釋
Python編程語言的單行注釋常以#開頭,單行注釋可以作為單獨的一行放在被注釋代碼行之上,也可以放在語句或者表達式之後。
實例:
# -*- coding: UTF-8 -*-
print(“hello world!”); #您好,世界
2.多行注釋
Python中多行注釋使用三個單引號(』』』)或者三個雙引號(」」」)來標記,而實際上這是多行字符串的書寫方式,並不是Python本身提倡的多行注釋方法。
實例:
”’
這是多行注釋,使用單引號。
這是多行注釋,使用單引號。
”’
“””
這是多行注釋,使用雙引號。
這是多行注釋,使用雙引號。
“””
python sns.pointplot如何添加文本信息
C語言有__LINE__來表示源代碼的當前行號,經常在記錄日誌時使用。Python如何獲取源代碼的當前行號?
The C Language has the __LINE__ macro, which is wildly used in logging, presenting the current line of the source file. And how to get the current line of a Python source file?
exception輸出的函數調用棧就是個典型的應用:
A typical example is the output of function call stack when an exception:
python代碼
File “D:\workspace\Python\src\lang\lineno.py”, line 19, in module
afunc()
File “D:\workspace\Python\src\lang\lineno.py”, line 15, in afunc
errmsg = 1/0
ZeroDivisionError: integer division or modulo by zero
那麼我們就從錯誤棧的輸出入手,traceback模塊中:
Now that, Let’s begin with the output of an exception call stack, in the traceback module:
python代碼
def print_stack(f=None, limit=None, file=None):
“””Print a stack trace from its invocation point.
The optional ‘f’ argument can be used to specify an alternate
stack frame at which to start. The optional ‘limit’ and ‘file’
arguments have the same meaning as for print_exception().
“””
if f is None:
try:
raise ZeroDivisionError
except ZeroDivisionError:
f = sys.exc_info()[2].tb_frame.f_back
print_list(extract_stack(f, limit), file)
def print_list(extracted_list, file=None):
“””Print the list of tuples as returned by extract_tb() or
extract_stack() as a formatted stack trace to the given file.”””
if file is None:
file = sys.stderr
for filename, lineno, name, line in extracted_list:
_print(file,
‘ File “%s”, line %d, in %s’ % (filename,lineno,name))
if line:
_print(file, ‘ %s’ % line.strip())
traceback模塊構造一個ZeroDivisionError,並通過sys模塊的exc_info()來獲取運行時上下文。我們看到,所有的秘密都在tb_frame中,這是函數調用棧中的一個幀。
traceback constructs an ZeroDivisionError, and then call the exc_info() of the sys module to get runtime context. There, all the secrets hide in the tb_frame, this is a frame of the function call stack.
對,就是這麼簡單!只要我們能找到調用棧frame對象即可獲取到行號!因此,我們可以用同樣的方法來達到目的,我們自定義一個lineno函數:
Yes, It’s so easy! If only a frame object we get, we can get the line number! So we can have a similar implemetation to get what we want, defining a function named lineno:
python代碼
import sys
def lineno():
frame = None
try:
raise ZeroDivisionError
except ZeroDivisionError:
frame = sys.exc_info()[2].tb_frame.f_back
return frame.f_lineno
def afunc():
# if error
print “I have a problem! And here is at Line: %s”%lineno()
是否有更方便的方法獲取到frame對象?當然有!
Is there any other way, perhaps more convinient, to get a frame object? Of course YES!
python代碼
def afunc():
# if error
print “I have a proble! And here is at Line: %s”%sys._getframe().f_lineno
類似地,通過frame對象,我們還可以獲取到當前文件、當前函數等信息,就像C語音的__FILE__與__FUNCTION__一樣。其實現方式,留給你們自己去發現。
Thanks to the frame object, similarly, we can also get current file and current function name, just like the __FILE__ and __FUNCTION__ macros in C. Debug the frame object, you will get the solutions.
如何用Python寫腳本遍歷詞典提取中文文本中一樣的詞語並做出標記
詞典?數據格式貼一下吧?
———————————–
遍歷每一個元素,然後用正則去匹配。
如何用Python寫腳本提取中文文本文件中有特殊標籤標記的字段
代碼改一下
f = open(“test.txt”, “r”)
while True:
line = f.readline()
if line:
pass # do something here
line=line.strip()
p=line.rfind(‘.’)
filename=line[0:p]
print “create %s”%line
else:
break
f.close()
寫得可能羅嗦些,就是方便看。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/304946.html