Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换文本文件中的word-python 2.7_Python_Python 2.7_Windows 7_Replace - Fatal编程技术网

替换文本文件中的word-python 2.7

替换文本文件中的word-python 2.7,python,python-2.7,windows-7,replace,Python,Python 2.7,Windows 7,Replace,我有2个文件,如下所示 分支数据: open bus from 2311 to 3223 ck 1 open bus from 4321 to 3783 ck 1 . . . 我有大约100个这样的分支 填充: contingency 'b2_452' QQQQQQQQ open bus from 4321 to 3784 ck 1 end . . . 我有大约200个这样的突发事件 我正在尝试获得如下所示的输出 例外输出文件: 文件1 文件2 这是我的密码 infile = open('C

我有2个文件,如下所示

分支数据:

open bus from 2311 to 3223 ck 1
open bus from 4321 to 3783 ck 1
.
.
.
我有大约100个这样的分支

填充:

contingency 'b2_452'
QQQQQQQQ
open bus from 4321 to 3784 ck 1
end
.
.
.
我有大约200个这样的突发事件

我正在尝试获得如下所示的输出

例外输出文件:

文件1

文件2

这是我的密码

infile = open('Contingency.txt').read()
Brachdata = open('BranchData.txt', 'r')
i = 0
for branchline in Brachdata:
    replace1 = branchline
    i = i + 1
    outputfile = open('file' + str(i) +'.txt', 'w')
    for line in infile:
        outputfile.write(line.replace('QQQQQQQQ', replace1))
outputfile.close()

我对python编程还不熟悉,不知道我会错在哪里。这段代码正在创建我的填充的两个副本。。。没有用线路替换QQQ。

我发现了问题所在。。这是更新后的代码

f2 = open('Contingency.txt', 'r')
f1 = open('Contingency new.txt', 'w')

for line in f2:
    if 'QQQQQQQQ' in line:
        f1.write("    @")
    else:
        f1.write(line)
f1.close()

Brachdata = open('BranchData.txt', 'r')
infile = open('Contingency new.txt').read()

i = 0
for branchline in Brachdata:
    replace1 = branchline
    i = i + 1
    outputFile = open('Contingency' + str(i) +'.txt', 'w')
    for line in infile:
        if '@' in line:
            outputFile.write(replace1)
        else:
            outputFile.write(line)
Brachdata.close()

顺便说一句:你不必在
for
循环中使用“line”,你可以随意命名它。例如,在第一个for循环中,您可以对Brachdata中的branchline说
@DaanWilmer谢谢。。在这里发布一个问题是一个很好的学习体验:)我将
infle=open('IM Sub.txt')。read()
改为
infle=open('IM Sub.txt','r')
,然后在第一个文件中添加分支,但将其他文件留空,其中没有数据。另外,尝试使用
with
语句。文件关闭由
with
语句本身处理。它更像蟒蛇。e、 g.
将open('file'+str(i)+'.txt',w')作为输出文件:…
它只是创建空文件。
.read()
基本上是一次读取一个字母表。所以我用一个特殊的角色替换了它,它工作得非常完美。
infile = open('Contingency.txt').read()
Brachdata = open('BranchData.txt', 'r')
i = 0
for branchline in Brachdata:
    replace1 = branchline
    i = i + 1
    outputfile = open('file' + str(i) +'.txt', 'w')
    for line in infile:
        outputfile.write(line.replace('QQQQQQQQ', replace1))
outputfile.close()
f2 = open('Contingency.txt', 'r')
f1 = open('Contingency new.txt', 'w')

for line in f2:
    if 'QQQQQQQQ' in line:
        f1.write("    @")
    else:
        f1.write(line)
f1.close()

Brachdata = open('BranchData.txt', 'r')
infile = open('Contingency new.txt').read()

i = 0
for branchline in Brachdata:
    replace1 = branchline
    i = i + 1
    outputFile = open('Contingency' + str(i) +'.txt', 'w')
    for line in infile:
        if '@' in line:
            outputFile.write(replace1)
        else:
            outputFile.write(line)
Brachdata.close()