我对zed shaw的练习有点困惑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(文件名) 并进一步说 没有这样的文件或目录
那么,我该怎么办?
答案 0 :(得分: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>
(呃,这只是我碰巧躺在我的电脑上的一些文件......)
输入文件时一定不要使用引号 - 或者之后去掉它们!为argv
执行此操作可能有效,但绝对不适用于raw_input
。
编辑:我认为这就是问题所在:您输入带引号的文件名(例如您在移动时右键单击“复制为路径”在资源管理器中)。对于sys.argv
,这些被删除(Python?OS?我认为是Python ...),而不是raw_input
。
答案 1 :(得分:0)
由于您使用的是Windows,因此在输入文件名时可以尝试使用/
(正斜杠),或者对路径分隔符\\
使用双反斜杠。< / p>
要输入您的文件名,您可以尝试e:/python/ex15_sample.txt
或e:\\python\\ex15_sample.txt
。