Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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
Python处理并覆盖外部文本文件_Python - Fatal编程技术网

Python处理并覆盖外部文本文件

Python处理并覆盖外部文本文件,python,Python,我有一个输入文本文件,如下所示,保存为12.txt: 我的目标是从这个文件中删除所有特殊字符并覆盖它:我正在使用下面的python脚本 : 但是它给了我这个输出: 我不希望输出被追加,因为它是如上所示,我希望输出覆盖12.txt。运行python脚本后为12.txt的文件应如下所示: 234,162,234,183,307,162,307,183,english 我已经提到了,但是我缺少了一些东西您需要打开临时文件并从文件中读取,删除旧文件并重命名为新名称 import os import n

我有一个输入文本文件,如下所示,保存为12.txt:

我的目标是从这个文件中删除所有特殊字符并覆盖它:我正在使用下面的python脚本 :

但是它给了我这个输出:

我不希望输出被追加,因为它是如上所示,我希望输出覆盖12.txt。运行python脚本后为12.txt的文件应如下所示:

234,162,234,183,307,162,307,183,english

我已经提到了,但是我缺少了一些东西

您需要打开临时文件并从文件中读取,删除旧文件并重命名为新名称

import os
import numpy as np
import math
import cv2 as cv

#path = '/media/D/code/OCR/text-detection-ctpn/data/mlt_english+chinese/image'
gt_file = '12.txt'
output = open("temp.txt","w")
with open(gt_file, 'r') as f:
    for line in f:
        line = line.replace("[", "")
        line = line.replace("(", "")
        line = line.replace(")", "")
        line = line.replace("]", "")
        line = line.replace(" ", "")

        output.write(line)
output.close()
os.remove(gt_file) # remove old file
os.rename("temp.txt",gt_file) # rename as old file

您需要打开临时文件并从文件中读取,删除旧文件并重命名为新名称

import os
import numpy as np
import math
import cv2 as cv

#path = '/media/D/code/OCR/text-detection-ctpn/data/mlt_english+chinese/image'
gt_file = '12.txt'
output = open("temp.txt","w")
with open(gt_file, 'r') as f:
    for line in f:
        line = line.replace("[", "")
        line = line.replace("(", "")
        line = line.replace(")", "")
        line = line.replace("]", "")
        line = line.replace(" ", "")

        output.write(line)
output.close()
os.remove(gt_file) # remove old file
os.rename("temp.txt",gt_file) # rename as old file

将这两个过程分开,这样更干净

#read and edit lines
to_write = [] #store edited lines
with open(gt_file, 'r') as f:
    for line in f.readlines():
        ...
        to_write.append(line)

#write back edited lines
with open(gt_file, 'w') as f:
    for line in to_write:
        f.write(line)

将这两个过程分开,这样更干净

#read and edit lines
to_write = [] #store edited lines
with open(gt_file, 'r') as f:
    for line in f.readlines():
        ...
        to_write.append(line)

#write back edited lines
with open(gt_file, 'w') as f:
    for line in to_write:
        f.write(line)

原因是,您的文件指针已到达末尾。给定文本文件中的一行,可以使用seek和truncate函数来重现所需的结果

import os
import numpy as np
import math

gt_file = '12.txt'

with open(gt_file, 'r+') as f:
    for line in f.readlines():
        line = line.replace("[", "")
        line = line.replace("(", "")
        line = line.replace(")", "")
        line = line.replace("]", "")
        line = line.replace(" ", "")
        f.seek(0)
        f.truncate()
        f.write(line)

原因是,您的文件指针已到达末尾。给定文本文件中的一行,可以使用seek和truncate函数来重现所需的结果

import os
import numpy as np
import math

gt_file = '12.txt'

with open(gt_file, 'r+') as f:
    for line in f.readlines():
        line = line.replace("[", "")
        line = line.replace("(", "")
        line = line.replace(")", "")
        line = line.replace("]", "")
        line = line.replace(" ", "")
        f.seek(0)
        f.truncate()
        f.write(line)
我用过这个

file = open('test_file', 'r')
data = file.read()
file.close()

data = data.replace("[", "")
data = data.replace("(", "")
data = data.replace(")", "")
data = data.replace("]", "")
data = data.replace(" ", "")
print(data, file=open('test', 'w'))
检查这是否适合你。

我用过这个

file = open('test_file', 'r')
data = file.read()
file.close()

data = data.replace("[", "")
data = data.replace("(", "")
data = data.replace(")", "")
data = data.replace("]", "")
data = data.replace(" ", "")
print(data, file=open('test', 'w'))

检查这是否对您有效。

在打开文件时使用“w+”而不是“r+”作为选项不起作用吗?@TUIlover w+截断文件,因此OP将无法读取数据。在打开文件时使用“w+”而不是“r+”作为选项不起作用吗?@TUIlover w+截断文件,因此OP将无法读取数据。