Python質問箱 - 投票はこちら

| | コメント(2) | トラックバック(0)
なんか、鯖移転後にめんどくさくなって、
久々にページ見たら全然レイアウト崩れっぱなしだし、
放置してる間にBeautifulSoupの解説で飛んでくる人が増加してるし。
いやらしく広告とか貼っといた。

さて、Python使い始めて1年くらいになるけど、ほとんどPerlの使い方忘れてますw
ただこのタイトルはお気に入りなんで、このままにしよう。
近況は特に変化もなく、飽きずにPythonで遊んでます。
ひとまず、やりたい事は何とか出来るところまでは来たので
また隙を見て、いろいろ紹介していきます。

また、Pythonで行き詰りそうな所の解説とかやってみようと思います。
Python初心者の方とか、分からないことあったらコメント欄で適当に質問してみてください。
僕の方が初心者である可能性が大ですが、分からないなりに
一生懸命 調べて解説したいと思ってます。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Python質問箱 - 投票はこちら

このブログ記事に対するトラックバックURL: http://mt.blog-slime.com/mt-tb.cgi/23

コメント(2)

はじめまして。
突然で不躾ではありますが、早速質問させてください。
windowsでpythonをしようしているのですが、
右クリックメニューの「送る」pythonファイルを入れて、
選択したファイルに対して、文字列を置き換えるスクリプトを組んでいました。
内容は・・・
---------------------------------------------
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys,os,re
for s in sys.argv[1:]:
f=open(s, "r")
str1 = f.readline()
str2 = re.sub("/", r'\', str1 )
f=open(s, "w")
f.write(str2)

f.close()
---------------------------------------------
です。
7行目のr'\'の「\」実際には¥(yenマーク)なのですが、
アルファベットではない文字なのでうまく働きませんでした。

やりたいことはテキストファイル内にある、ディレクトリの表記を「/(スラッシュ)」ではなく「¥(yenマーク)」に置き換えたいのです。
str2 = re.sub("/", r'\', str1 )

str2 = re.sub("/", ru'\', str1 )

としたりしてはみたのですが、うまくいきませんでした。


どうか、お知恵をお貸しくださいませ。

惜しいですね。

\(バックスラッシュ)は、エスケープ文字といって
特殊文字等の前に置くことで、直後の文字を
通常の文字列として扱わせる役目を持ちます。

a = "文字列"文字列" といったように
「"」の間で「"」を使用したい場合、上の書き方では
どこまでが文字列なのか判別できません。
そういう場合に「"」をエスケープしてやると

a = "文字列\"文字列"

うまくいきます。

str2 = re.sub("/", r'\', str1 )

の場合は、「\」自体が特殊な意味を持ってしまっていますので
この状態では「'」がエスケープされてしまい、エラーになります。
「\」自体をエスケープしてやる必要があります。

↓↓

str2 = re.sub("/", r'\\', str1 )

のようにするとうまく行くのではないでしょうか?

ちなみに、\と¥マークは
フォントや国等の具合で表示が
変わったりしますが同じ意味です。

コメントする

このブログ記事について

このページは、adminが2008年12月 3日 03:25に書いたブログ記事です。

ひとつ前のブログ記事は「ppkd(ppkf)を使って、文字エンコードを自動判別(文字エンコードについて)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。