簡體   English   中英

為什么此python代碼無法打開文件?

[英]Why won't this python code open the file?

當我運行此代碼時,它會提示輸入文件名,並考慮是否輸入文件路徑或拖放,它將運行代碼'File cannot be opened'的其余部分,但永遠不會運行fuse = open(fname)或程序的其余部分。

這是完整的程序:

fname = raw_input('Enter file name: ')
try:
    fuse = open(fname)
except:
    print 'File cannot be opened'
    raw_input('Press enter to quit')
count = 0
total = 0
for line in fuse:
    if line.notstartswith('X-DSPAM-Confidence:'): continue
    elif line.startswith('X-DSPAM-Confidence:'):
    count = count + 1
    vpos = line.find(' ')
    addv = line[vpos:]
    addv = float(addv)
    total = total + addv

print total/count

關於什么可能是錯的任何想法?

當我不嘗試運行它並且從命令行中除外來查看錯誤時,這是​​我得到的消息:

輸入文件名:“ C:\\ Users \\ Gonzalez Cocoma \\ Documents \\ Python \\ Programs \\ mbox-short.txt”回溯(最近一次調用):文件“ C:\\ Users \\ Gonzalez Cocoma \\ Documents \\ Python \\ Programs \\ Spamaverage .py“,第2行,保險絲=打開(fname)IOError:[Errno 22]無效模式('r')或文件名:'” C:\\ Users \\ Gonzalez Cocoma \\ Documents \\ Python \\ Programs \\ mbox-short。文本”'

fname不是有效的文件。

在提示下:

>>> import os
>>> fname = 'invalid-filename.txt'
>>> os.path.isfile(fname)
False

如果嘗試將其打開,則會出現異常:

>>> open(fname)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'invalid-filename.txt'

您可以捕獲異常,並打印其值:

>>> try:
...     open(fname):
... except IOError as error:
...     print e
[Errno 2] No such file or directory: 'invalid-filename.txt'

文件名無效的原因是您要加上引號。

錯誤消息顯示字符串'“ path / to / file.txt”'。 它應該顯示“ path / to / file.txt”:

IOError: [Errno 22] invalid mode ('r') or filename:
    '"C:\Users\Gonzalez Cocoma\Documents\Python\Programs\mbox-short.txt"'

應該:

IOError: [Errno 22] invalid mode ('r') or filename:
    'C:\Users\Gonzalez Cocoma\Documents\Python\Programs\mbox-short.txt'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM