gpt4 book ai didi

Python 使用 Fileinput 替换单词

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:59 25 4
gpt4 key购买 nike

我在 MAC OS X 上使用 Python 2.7,并编写了一个程序来用另一个词替换文件中的一个词。每当该词出现在该文件中时,我都希望将其替换为用户指定的另一个词。它似乎在工作,但它似乎在底部输出了几行从文件中复制的额外行。有谁知道它为什么这样做?

原始文件:

TCPServeraddress      april.com
NODename hostname
COMMmethod TCPip
NFSTIMEout 0
TCPBuffsize 32
TXNB 25600
TCPWINDOWSIZE 64
TCPNODELAY YES
LARGECOMMBUFFERS YES
MANAGEDServices Schedule
SCHEDMODe prompted
PASSWORDAccess generate
ERRORLOGRetention 2 d
ERRORLOGName /ngs/hostname/logs/dsmerror.log
SCHEDLOGRetention 2 d
SCHEDLOGName /ngs/hostname/logs/dsmsched.log

运行我的脚本后,用户将输入“test”作为主机名:

import fileinput


textToSearch = "hostname"
print ("Please type in the TSM Hostname:")
textToReplace = raw_input( "Hostname/Nodename: " )

print ("***Updating dsm.sys file****")
fileToSearch = "/Users/bob/Desktop/FinalizedPythonScripts/helloworld"

tempFile = open( fileToSearch, 'r+' )

for line in fileinput.input( fileToSearch ):
tempFile.write( line.replace( textToSearch, textToReplace ) )
tempFile.close()

我正确地获得了修改后的文件,但是在原始文件中不存在的最后一行有额外的“smsched.log”,我重复了这个过程并且每次都会发生:

TCPServeraddress      april.com
NODename test
COMMmethod TCPip
NFSTIMEout 0
TCPBuffsize 32
TXNB 25600
TCPWINDOWSIZE 64
TCPNODELAY YES
LARGECOMMBUFFERS YES
MANAGEDServices Schedule
SCHEDMODe prompted
PASSWORDAccess generate
ERRORLOGRetention 2 d
ERRORLOGName /ngs/test/logs/dsmerror.log
SCHEDLOGRetention 2 d
SCHEDLOGName /ngs/test/logs/dsmsched.log
smsched.log

最佳答案

使用 fileinput.input(filePath, inplace=True) 方法代替 open(..) 方法

这是脚本:

import fileinput

textToSearch = "hostname"
print ("Please type in the TSM Hostname:")
textToReplace = raw_input( "Hostname/Nodename: " )
print ("***Updating dsm.sys file****")
fileToSearch = "/Users/bob/Desktop/FinalizedPythonScripts/helloworld"
for line in fileinput.input(fileToSearch, inplace=True):
print line.replace(textToSearch, textToReplace),

关于Python 使用 Fileinput 替换单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37823126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com