pythonです。
まず、下のようなテキストファイル(URL.txt)があります。
ABhttp://www.abcd.co.jpCD
EFhttps://www.dgagg&AI.co.jpGH
IJhttp://bbq.comKL
MNhttps://khdye.co.jpOP
QRhttps://www.hhdhey.netST
VWhttp://www.aaaaaaid.comXY
http://www.jiiweiu.co.jp
見てわかる通り、上から6個目まではURLの前と後ろにいらない英字があります。
一番下のURLは正常です。
ここで、このfileを読み込み、おかしいURLは前と後ろ2個ずつ消してprint、正常なURL(一番下)はそのままprintしたいです。
そこで、if文を用い"前から7つ目、または8つ目がhttps://, https://に該当しなかったら抜いてprint"というif文を考え実行してみましたが、なぜか正常である一番下のURLまで2個ずつ消してprintされてしまいます。なぜでしょうか?
一回type関数を使ってreadしたlineを調べてみたらしっかりstr型でした。
また、今はelifを使ってわざわざ2個目の条件文を書き込んでいますが、elseで実行してもおなじでした。
is not → != やってみましたが結果は同じでした。
with open("URL.txt", "r") as i: for line in i: if line[0:7] is not "http://" or line[0:8] is not "https://": print(line[2:-3]) elif line[0:7] is "http://" or line[0:8] is "https://": print(line)
line[0:7] → line[0] 変化なし
with open("URL.txt", "r") as i: for line in i: if line[0] != "h" or line[0] != "h": print(line[2:-3]) else: print(line)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 11:52