0

我正在尝试实现此处给出的答案:

https://stackoverflow.com/a/1388570/1461850

我有一个输入文件zzz.txt,其中包含:

potato potato potato potato potato potato potato potato potato 
potato potato potato
potato potato potato potato potato potato potato potato potato
potato potato potato potato turnip potato
potato potato parsnip potato potato potato

我正在尝试像这样替换单词:

import fileinput
fileinput.close()
file = open('zzz.txt', "r+")
for line in fileinput.input(file, inplace=1):
    print line.replace('turnip', 'potato')

我收到以下错误:

Traceback (most recent call last):
  File "testss.py", line 19, in <module>
    for line in fileinput.input(file, inplace=1):
  File "c:\python27\lib\fileinput.py", line 253, in next
    line = self.readline()
  File "c:\python27\lib\fileinput.py", line 322, in readline
    os.rename(self._filename, self._backupfilename)
WindowsError: [Error 123] The filename, directory name, or volume label syntax i
s incorrect

我在做一些明显错误的事情吗?

4

2 回答 2

1

不要传递文件对象,而是将文件名(或文件名列表)传递给fileinput.input

fileinput.input('zzz.txt', inplace=1):

注意:不要file用作变量名,file是一个内置函数。

于 2013-08-30T09:30:48.457 回答
1

关于什么:

import fileinput
a = 'zzz.txt'

for line in fileinput.input(a, inplace=1):
    print line.replace('turnip', 'potato')
于 2013-08-30T09:30:59.373 回答