Pythonクローラーとpytorchの基本的な知識研究ノート

1.シーケンシャルリスト/タプルを生成します

s = [x for x in range(1,10)]

2.Python出力フォーマット

print("Python{} {}/{}/{}".format('学习',2019,9,6))
print("Python%s %d/%2d/%2d"%('学习',2019,9,6))# %s输出字符串,%2d输出2格整数
#此外还有%f,%4.2f等控制小数点后位数

3.ラムダ関数の使用法

匿名関数を定義するために使用されます。関数関数は非常に単純で、関数を個別に定義する必要はありません。現時点では、ラムダが便利です。

f = lambda x: x*x + 1
f(3)
f(5)

4.マップ機能の使用法

1対1のマッピングに使用されるmap関数は非常に単純です。入力パラメータは、マッピングの関係とシーケンス(通常はリストですが、タプルも)です。定義された関数を介したシーケンス内の要素の1対1のマッピングは、リストを返します。

f = lambda x: x*x + 1
s = [x for x in range(1,10)]
ss = map(f,s)
for i in ss:
	print("函数值:\t%d"%(i))

5.Python特記事項

#!/usr/bin/python3 env

この文は、pythonコンパイラの場所を示しています。Windows環境では、これは必須ではありませんが、Linux環境である必要があります。Linux環境と互換性を持たせるには、この文を追加します。

#coding=utf-8

この文は文字エンコーディングを指定します。python3のデフォルトはutf-8ですが、python2はASCIIエンコーディングを使用します。python2と互換性を持たせるために、この文を追加してください。

6.正規表現を使用して、文字列内の中国語以外の文字を削除します

import re #引入正则
def remove(text):
	remove_chars = '[A-Z0-9’a-z!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘’![\\]^_`{|}~]+'
    return re.sub(remove_chars, '', text)

7.ステートメントが実行されているときにのみ実行され、呼び出されたときに実行されないようにします。

if __name__ == "__main__":
	print("Print only in running")
#if下面的语句将在被调用时不会执行

8.Pythonの読み取りおよび書き込みファイルメソッド

基本的にC言語のキーワードと同じ

r 読み取り専用モード ファイルが存在する必要があります(デフォルトモード)
w 書き込み専用モード ファイルが存在しない場合は作成し、存在する場合は空にしてから書き込みます。
A 追加モード ファイルが存在しない場合は作成し、存在する場合はコンテンツを追加します
r + 読み取りおよび書き込みモード ファイルは存在し、最初から開始し、書き込んだ分だけ上書きし、同時に読み取り可能である必要があります
w + 読み取りおよび書き込みモード ファイルが存在しない場合は作成され、存在する場合は書き込みと読み取りが同時に行われます。
a + 読み取りおよび書き込みモード 存在しない場合はファイルを作成し、存在する場合はコンテンツの後に書き込み、読み取ります

読み取りと書き込みの例:

fr = open('test1.txt','r+')#打开文件
for line in fr: #遍历文件
    print('每行内容为:',line) #打印文件中每一行内容
fr.close()#关闭文件

fw = open('test2.txt','w+')#打开或创建文件
fw.write('Python写入操作')
fw.close()#关闭文件

注:読み取り操作中は、ファイルポインターがファイルの最後にあるかどうかに注意してください。最後にある場合は、次のようにファイルの内容を読み取るために、ポインターをseek(0)で先頭リセットする必要があります。fr.seek(0)

9.TXTファイルエンコーディング

txtファイルのデフォルトはgbkエンコーディングですが、文字エンコーディングがutf-8の場合、エラーが報告されます。このとき、文字エンコーディングをutf-8として指定する必要があります。

with open('test.txt','w',encoding = 'utf-8') as fp:
	fp.write(result)

10.スクレイプモジュールを適用するときにアイテムを参照する2つの方法

1.以下は、Pycharmでタイプミスを促しますが、それでも実行できます

from FindMovies.items import FindmoviesItem

2.以下の方法を使用する代わりに、問題はありません

import sys
sys.path.append('E:\\PyCharm2017\\program\\FindMovies\\FindMovies')# 当前items所在的路径
from items import FindmoviesItem

11.コンピューターの複数のpythonバージョンでのスクレイプフレームワークの確立

  1. 一般的に、スクレイプのフレームワークが確立されています。コマンドラインでプログラムが保存されているパスを見つけて、次のコマンドを入力するだけです。
scrapy startProject scrapyDemo	#建立名为scrapyDemo爬虫框架
tree scrapyDemo	#查看框架产生的项目分支

次のプロジェクトブランチが返された場合は、作成が成功したことを意味し
プロジェクトツリー
ます。2。pythonのバージョンが複数ある場合
、ランチャー致命的なエラー:...を使用してプロセスを作成できませんが表示される場合があります。このとき、コマンドを入力してpythonバージョンを指定する必要があります。作成するには:

python -m scrapy startproject scrapyDemo

これで正常に作成できます

12.pytorchモデルのアドレスをダウンロードして場所を保存します

  1. pytorchの各モデルのダウンロードリンクは次のとおりです。link
    blog ;ダウンロードアドレスを直接コピーし、ブラウザに貼り付けてダウンロードします。
  2. ダウンロードしたモデルの保存場所は、次の方法で決定できます
    。IDLEへの入力
import torchvisvion.models as models
resnet = models.resnet18(pretrained=True)

ポップアップしてファイルとその保存場所をダウンロードします。ダウンロードしたモデルを変更したパスにコピーするだけです。

13.CNNとRNNの違い

CNNはConvolutionalNeural Networkの略語であり、RNNはRecurrent NeuralNetworkの略語です。CNNの制限は、入力と出力のシーケンスが固定されているのに対し、RNNは可変であり、次のようにグラフィカルに表されます
CNNとRNNの違い
。CNNは1対1、RNNは1対多、多対1、多対多です。RNNは、マシン変換、テキスト処理など、入力シーケンスと出力シーケンスが可変のシナリオに適しています。一般に、RNNは可変長データを処理するように設計されています。

14.発生したエラーと解決策

1.TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

これはパラメータが対応していない問題であり、%を使用してパラメータを渡すときに発生します。
解決策:
%を.format()に置き換えます。

おすすめ

転載: blog.csdn.net/weixin_45371989/article/details/100584653