我对Python很陌生。我正在尝试学习如何创建模块和导入函数,所以这是两个文件中的原因是因为我正在为此而愚弄。在我看来,这不是问题所在,但我想我会在那里放一些背景故事,以防它相关。
我知道我的格式和变量/文件/模块命名很草率,这应该是一次性的快速一次性,但我被卡住了,现在我很痴迷。
基本上我只是想为文件创建一个查找和替换函数,但无论我如何格式化file.replace(x,x)函数,我都会继续运行。
#!/user/bin/env python3
def readfile(filename):
'''
Function to open a file, format it and read it into
a variable called filename
'''
fobj = open(filename)
for line in fobj:
print(line.rstrip())
return filename
return fobj
fobj.close()
def readnewfile(filename, torep, withrep):
'''
Function to replace strings in file - NOT USED
'''
fobj = open(filename)
for line in fobj:
print(line.strip('\n'))
print (fobj.replace(torep, withrep))
return filename
fobj.close()
#!/usr/bin/env python3
import string
from fileread import *
filename = input ('what is the path to the file you want to read: ')
readfile(filename)
print ('Read file ', filename)
torep = input ('What word would you lke to replace: ')
withrep = input ('What word would you lie to replace it with: ')
print ('''
''')
#readnewfile(filename, torep, withrep)
#with open(filename) as temp:
change = open(filename).replace(torep, withrep)
print(change)
答案 0 :(得分:2)
你的例外来自这条线:
change = open(filename).replace(torep, withrep)
您正在调用文件对象上不存在的replace
方法(从open
返回)。我怀疑你想要调用字符串所具有的replace
方法。尝试:
change = open(filename).read().replace(torep, withrep)
这会调用read()
将文件的内容作为单个字符串读取,然后在该字符串上调用replace
。
将操作分成几行可能是一个好主意,但我已将它保留在您目前拥有的相同结构中。您的代码中还有许多其他内容可以改进(例如,您已经开始使用with
),但我认为上面的问题是您目前陷入困境的问题。
答案 1 :(得分:1)
我还不是100%关于如何格式化评论,规则说我可以用解决方案回答我自己的问题,但是我想归功于@Blckknght给予它。
我刚刚通过调用read()替换它,现在它工作正常:
with open(filename) as temp:
change = temp.read().replace(torep, withrep)
print(change)