python - zed Shaw 的练习 15 打开函数

标签 python

我对 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(文件名) 它进一步说 没有这样的文件或目录

那么,我该怎么办?

最佳答案

你的代码很好。您输入文件名时出错。检查该文件是否确实存在。

>>> 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

编辑:我认为这就是问题所在:您输入的文件名带有引号(例如在资源管理器中按住 Shift 键并右键单击“复制为路径”时得到的文件名)。对于 sys.argv,这些会被(Python?操作系统?我认为是 Python...)删除,但不会被 raw_input 删除。

关于python - zed Shaw 的练习 15 打开函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224688/

相关文章:

python - Pandas - 将 DataFrame 值除以 MultiIndex DataFrame 中的 Series

python - 成功注销后重定向django内置注销 View

python - 如何使用 BSDS500 数据集中的 .mat 文件?

python - Pandas:按行从 DataFrame 的特定列中选择值

python - 一个类轮到 "assign if not None"

python - 使用python脚本连接ES

python - Django 没有接受新的更改

python - 如何使用 python 按字母顺序对 .txt 文件进行排序?

python - 有没有办法记住 python 迭代器中的位置?

python 如何使用时间模块生成许可证