文字列処理
分割文字列のpython
パイソン、スプリット()とos.path.split()は、2つの機能、具体的な効果は、以下が挙げられます:
- スプリット():スプリット文字列。区切り文字によって指定された文字列をスライスし、分割された文字列リスト(リスト)を返します
- os.path.split():ファイル名とパス分離へのパスをたどります
1、スプリット()関数
>>>str = 'aas,sgsgwe,sagwe,dfgxzsf,wagwr'
#使用默认分隔符
>>>print(str.split())
['aas,sgsgwe,sagwe,dfgxzsf,wagwr']
#使用‘,’分隔符
>>>print(str.split(','))
['aas', 'sgsgwe', 'sagwe', 'dfgxzsf', 'wagwr']
#分割0次
>>>print(str.split(',',0))
['aas,sgsgwe,sagwe,dfgxzsf,wagwr']
#分割1次
>>>print(str.split(',',1))
['aas', 'sgsgwe,sagwe,dfgxzsf,wagwr']
#分割两次,并取序列为1的项
>>>print(str.split(',',2)[1])
sgsgwe
#分割最多次,可以不加参数
>>>print(str.split(',',-1))
['aas', 'sgsgwe', 'sagwe', 'dfgxzsf', 'wagwr']
#分割两次,并把三部分保存到三个变量里面
>>>str1,str2,str3 = str.split(',',2)
>>>print(str1)
aas
>>>print(str2)
sgsgwe
>>>print(str3)
sagwe,dfgxzsf,wagwr
2、os.path.split()関数を
する「/」のデリミタの最終セグメンテーションと抽出経路である「/」パスまたはファイルコンテンツが後ろ
>>>import os
>>>print(os.path.split('E:\\data\\db\\journal\\'))
('E:\\data\\db\\journal', '')
>>>print(os.path.split('E:\\data\\db\\journal'))
('E:\\data\\db', 'journal')
3、例
>>> str="hello boy<[www.doiido.com]>byebye"
>>> print str.split("[")[1].split("]")[0]
www.doiido.com
>>> print str.split("[")[1].split("]")[0].split(".")
['www', 'doiido', 'com']
Pythonの文字列サプリメント
>>>str = '''kkk
...hello
...world'''
>>>c
'kkk\nhello\nworld'
>>>print(c)
kkk
hello
world
第二に、読み取りと書き込みファイル
ファイルモードを読み書き:
1、rは読み取り専用ファイルを開くと、ファイルが存在している必要があります。
2、R +は読み書きファイルが存在している必要があります開かれました。
ファイルが存在する場合、図3に示すように、開かれた書き込み専用ファイルwは、ファイルの長さはつまり、ファイルの内容が消え、0にクリアされます。ファイルが存在しない場合は、ファイルを作成します。
図4は、ファイルが存在する場合+オープンは、ファイルを読み書きするwは、ファイルの長さが0にクリアされ、すなわち、ファイルの内容が表示されなくなります。ファイルが存在しない場合は、ファイルを作成します。
5、追加の書き込み専用のファイルへのオープン方法。ファイルが存在する場合、ファイルは、ファイルの確立を存在しない場合、データはファイルに書き込まれ、最後に追加され、つまり、元のファイルの内容が保持されています。
6、A +ファイルを添付するための書き込み可能な道を開きます。ファイルが存在しない場合、ファイルが存在する場合、ファイルの確立は、書き込まれたデータは、元の内容が保持されるファイル、ファイルの末尾に追加されます。
AB +または組み合わせ等B +、開くためにバイナリファイルではなく、プレーンテキストファイルとしてライブラリB文字ファイルを伝えるために添加したwを図7に示すように、上述した態様は、そのようなRBと、文字列、文字Bと組み合わせることができます。
図8は、tは、いわゆるWindowsプラットフォーム固有のテキストモード(テキストモード)で、その行を除い改行は自動的にWindowsプラットフォームを識別します。
Unixライクなプラットフォームの改行は\ nを、改行のためのプラットフォームWINDOWS \ rを\ nは2つのASCII文字を使用している、改行文字を表現するために、内部のpython \ nを使用しています。
RTモード、自動的にテキストを読むのpythonで\ rをする\ nを\ N-に変換される。
重量モードでは、Pythonは\ rを\ nに改行書き込みファイルを使用します。
ファイルを読みます
モードでファイルを開くには、ファイル名と識別子を渡し、Pythonの組み込みのopen()関数を使用して、ファイルオブジェクトをお読みください。
f = open('/Users/michael/test.txt', 'r')
ファイルが存在しない場合、open()関数は例外IOErrorのエラーをスローし、エラーコードに関する詳細情報を提供し、ファイルが存在しないことを教えてくれます。
ファイルが正常に開かれている場合、この方法は、ファイルの内容全体を読むことができる)(読み取り呼び出し、Pythonは、メモリの内容を読み取るSTRオブジェクトとして表さ。
print(f.read())
結果:
'Hello, world!'
最後のステップは、ファイルを閉じるためにclose()メソッドを呼び出すことです。ファイルオブジェクトを開くことができるファイルの数が限られていると同時に、オペレーティングシステムおよびオペレーティングシステムのリソースを占有するので、ファイルが終了した後、閉じていなければなりません。
f.close()
例外IOErrorファイルは読み取りおよび書き込み生成する可能性があるときので、エラー一度、バックf.close()が呼び出されることはありません。そのため、エラーが適切にファイルを閉じることができたか否かを確実にするために、我々は試す使用することができます...最終的に実現されます。
try:
f = open('/path/to/file', 'r')
print(f.read())
finally:
if f:
f.close()
しかし、あまりにも面倒であらゆるので、現実的なので、Pythonは自動的に私たちはclose()メソッドを呼び出す支援する声明を導入しました:
with open('/path/to/file', 'r') as f:
print(f.read())
(読みコール)ファイルは10G、破裂するメモリを持っている場合は、ワンタイム・ファイルの内容全体を読み、その安全のために、あなたが繰り返し呼び出すことができます読んで(サイズ)メソッドを、各コンテンツのサイズのバイトを読み出します。また、呼び出しがするのreadLine()テキストを呼び出すの各行読むことができますreadlines()すべてのコンテンツを読む時間が、リストを返すOK]を押します。そのため、呼び出したい方法を決定するために、必要に応じて。
また、(「UTF-8」)のデコードを追加するために、通常の表示を得るために、バイナリファイルをreadlineのバイナリを使用することができる
)(例えば:.筋力= readlineのため、デコード (「UTF-8」)
ファイルが小さい場合、(読み)最も便利なワンタイムを読み込み、ファイルサイズを決定することができない場合は、繰り返し安全な読み取り(サイズ)を呼び出し、それは設定ファイルであれば、(readlinesを呼び出して)最も便利:
for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉
ファイルを書きます
ファイルを書き込み、ドキュメントを読むと同じ、唯一の違いは、コールが開くようにということである()関数で、入ってくる識別子「w」と「wb」の書き込みテキストファイルまたはバイナリファイルを記述します。
f = open('/Users/michael/test.txt', 'w')
f.write('Hello, world!')
f.close()
あなたは、ファイルへの書き込みに繰り返し書き込みを()を呼び出しますが、ファイルを閉じますf.close()を呼び出すことを確認することができます。私たちは、ファイルを書き込むときに、オペレーティングシステムは、多くの場合、すぐにデータをディスクに書き込みますが、メモリにキャッシュされ、自由な時間、その後ゆっくりと書いていません。のみclose()メソッドを呼び出すことは、オペレーティング・システムは、データがすべてディスクに書き込ま書かれていないことを確認することでした。データの結果は、ディスクの一部のみを書き込むことができ、そして残りは失われる)(クローズ呼び出すことを忘れ。だから、まだ文で保険が付属しています:
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')
文字エンコーディングは、
()関数渡された符号化パラメータが自動的に文字列を指定されたエンコーディングに変換されます開くには、特定のエンコードされたテキスト・ファイルに書き込まれます。
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
いくつかの非標準のコーディングは、テキストファイルに不正な文字エンコーディングの一部と混合することができるので、あなたは、UnicodeDecodeErrorが発生する可能性があり、ファイルに遭遇しました。経験がどのようにコーディングエラー処理を示している場合、このようなケースでは、open()関数も、パラメータ誤差を受けます。最も簡単な方法は、単に無視することです:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
ファイル「W」モードに書き込むときに、ファイルが既に存在する場合は、直接(削除されたファイルに対応する新たに書き込まれている)を覆います。我々は、ファイルの末尾に追加したい場合はどのように行うには?あなたは「」(アペンド)モードを記述するために添加される渡すことができます。
csvファイルは読み取りと書き込み
)(CSVファイルリーダーを読みます
import csv
with open("test.csv","r") as csvfile:
reader = csv.reader(csvfile)
#这里不需要readlines
for line in reader:
print(line)
csvファイルを書きます
import csv
#python2可以用file替代open
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile)
#先写入columns_name
writer.writerow(["index","a_name","b_name"])
#写入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
結果:
インデックスa_name b_name
0 1 3
1 2 3
2 3 4
また、ファイルの読み込みを使用して、パケットのパンダを書くことができます
第三に、データ型の変換
表現 | 効果 |
---|---|
INT(X [ベース]) | 整数xはに変換され |
長い(X [ベース]) | 長い整数xに変換 |
フロート(X) | 浮動小数点Xへの移行 |
複素数(実数[、IMAG]) | 複合体を作成します |
STR(X) | オブジェクトは、ストリングxに変換されます。 |
repr(x)は | 文字列オブジェクトは、式Xに変換され |
evalの(文字列) | Python文字列に有効な計算式、および、オブジェクトを返します |
タプル(S) | シーケンスsに変換することタプルです |
リスト(S) | 列Sを変換することのリストです |
CHR(X) | 整数を文字に変換します |
unichr(X) | 整数Unicode文字に変換されます |
言葉(x)は、 | その整数値にキャラクター |
ヘックス(X) | 整数は、16進文字列に変換します |
OCT(X) | 進整数を文字列に変換します |
四、gensim.modelsからword2vecをインポート
次の警告:
UserWarning: detected Windows; aliasing chunkize to chunkize_serial
warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")
問題に加えて、これらの2行を解決します:
import warnings
warnings.filterwarnings(action = 'ignore', category = UserWarning, module = 'gensim')
五、numpyの操作
配列要素の値のインデックスを返しますnumpyの
import numpy as np
array = np.array([3,5,7,2,8,0,9,45,0])
index = np.argwhere(array == 0)
print(index)
結果:
[[5]
[8]]