7
import os
import random

os.chdir("C:\Users\Mainuser\Desktop\Lab6")

#Am i supposed to have a os.chdir? 
# I think this is what's giving the error
#how do i fix this? 

def getDictionary():
      result = []
      f = open("pocket-dic.txt","r")
      for line in f:
            result = result + [ line.strip() ];
      return result

def makeText(dict, words=50):
      length = len(dict)
      for i in range(words):
            num = random.randrange(0,length)
            words = dict[num]
            print word,
            if (i+1) % 7 == 0:
                  print 

デスクトップに明らかにその名前のフォルダーがある場合、Python は指定されたパスが見つからないというエラーを表示します。それはos.chidrである可能性があります?? 私は何を間違っていますか?

4

2 に答える 2

10

バックスラッシュは、他の多くの言語と同様に、Python 文字列の特殊文字です。バックスラッシュを 2 倍にすることから始めて、これを修正するための多くの代替手段があります。

"C:\\Users\\Mainuser\\Desktop\\Lab6"

生の文字列を使用する:

r"C:\Users\Mainuser\Desktop\Lab6"

またはos.path.join代わりにパスを作成するために使用します:

os.path.join("c:", os.sep, "Users", "Mainuser", "Desktop", "Lab6")

os.path.joinは、最も安全で移植性の高い選択肢です。パスに "c:" をハードコーディングしている限り、実際には移植性はありませんが、それでもベスト プラクティスであり、開発する良い習慣です。

c:Users ではなく c:\Users を生成する正しい方法については、Windows で Python os.path.join を使用してください。

于 2013-10-30T20:29:11.703 に答える
3

バックスラッシュは、Python 文字列内で特別な意味を持ちます。それらを2倍にするか、生の文字列を使用する必要があります:(開始引用符r"C:\Users\Mainuser\Desktop\Lab6"の前に注意してください)。r

于 2013-10-30T20:28:57.670 に答える