1

ゼッド・ショーの練習問題15に少しこだわっています。実際、元のプログラムには問題はありませんでしたが、問題は、argvの代わりに生の入力を使用するように求められた追加のクレジットを試してみるときです。

だから、これは私が使用したコードです

filename=raw_input("enter filename :")
print "here's your file %r" % filename
txt=open(filename)
print txt.read()

ファイル名を要求されたら、パスe:\ python \ex15_sample.txtを指定します。この行に次のエラーが表示されます->txt= open(filename)さらに、そのようなファイルやディレクトリはないと表示されます

だから、私は何をしますか?

4

3 に答える 3

1

あなたのコードは大丈夫です。ファイル名の入力時にエラーが発生しました。ファイルが実際に存在することを確認してください。

>>> filename=raw_input('enter filename :')
enter filename :c:\Users\All Users\Autodesk\Revit\Addins\2012\RevitLookup.addin
>>> txt = open(filename)
>>> print txt.read()
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RevitAddIns>
  <AddIn Type="Application">
    <Assembly>C:\Program Files (x86)\Revit 2012 SDK\RevitLookup\CS\bin\Debug\RevitLookup.dll</Assembly>
    <ClientId>356CDA5A-E6C5-4c2f-A9EF-B3222116B8C8</ClientId>
    <FullClassName>RevitLookup.App</FullClassName>
    <Name>Revit Lookup</Name>
    <VendorId>ADSK</VendorId>
    <VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
  </AddIn>
</RevitAddIns>

(ええと、それは私がたまたま私のPCに置いてあるファイルのほんの一部です...)

ファイルを入力するときは引用符を使用しないでください。または、後で引用符を削除してください。のためにこれを行うことargvはうまくいくかもしれませんが、間違いなくraw_input

編集:それが問題だと思います:引用符でファイル名を入力しています(エクスプローラーでShiftキーを押しながら右クリックして[パスとしてコピー]を実行した場合など)。の場合sys.argv、これらは(Python?OS?私はPythonと思います...)によって削除されますが、。では削除されませんraw_input

于 2012-04-19T09:00:26.613 に答える
0

Windowsを使用しているため/、ファイル名を入力するときに(スラッシュ)を使用するか、パス区切り文字に二重の円記号を使用する必要があります\\

ファイル名を入力するには、e:/python/ex15_sample.txtまたはを試してくださいe:\\python\\ex15_sample.txt

于 2012-04-19T09:07:58.887 に答える
0

私は最終的にそれを機能させるために次のプログラムを使用しました:

print "Type your filename:"

filename = raw_input(">")

txt = open(filename)

print txt.read()

OPが%rフォーマッターを使用した理由に少し戸惑いました。私はそれを使用しませんでした、そして私のプログラムはまだ働きます。足りないものはありますか?ありがとう。

于 2016-12-05T01:59:11.717 に答える