python 中的文件“~”分隔文件中的问题
issue in file "~" seperated file in python
我是 Python 的新手。
我在文件夹中有“~”分隔的文件,例如
2021-11-02 23:04:17.106
#$!pre-dump!$#00067evnISO-8859-1
#$!languages!$#
##$!cdf!$#
UAFR~UAFRICA~
UEUE~UEUR (CIS + TURKEY)~
UEUW~UEUR (WESTERN)~
UFEA~UASIA~
UGBR~UUNITED KINGDOM~
ULAM~ULATIN AMERICA~
UMEA~UMIDDLE EAST~
UNAM~UNORTH AMERICA~
UOCE~UOCEANIA~
UUSA~UUSA~
文件中可能有没有“~”的行。
我需要在文本文件中获取包含“~”的行,这是我完成的 python 脚本
import os
sourcepath = os.listdir('input/')
for file in sourcepath:
input_file = 'input/' + file
print('conversion is going for:' + input_file)
with open(input_file, 'r+', encoding='cp437') as input_file:
input_file.seek(0)
lines = input_file.readlines()
input_file.seek(0)
for line in lines:
if "~" in line:
input_file.write(line)
以下为输入文件截图
input file screenshot
这是我在 运行 上面的 python 脚本之后得到的输出
output of the python script
我真的不知道我哪里错了......
请帮助我..
如果您写入的新数据少于原始文件大小,就地重写文件不会删除无关数据。但这是一个微不足道的修复;重写后 explicitly truncate
the file,例如:
import os
for file in os.listdir('input/'):
input_file = 'input/' + file
print('conversion is going for:' + input_file)
with open(input_file, 'r+', encoding='cp437') as input_file:
# Removed unnecessary initial seek; r+ defaults to beginning of file
lines = input_file.readlines()
input_file.seek(0)
for line in lines:
if "~" in line:
input_file.write(line)
input_file.truncate() # With no arguments, truncate truncates to current file offset
可选地,truncate
可以在 .seek(0)
之后完成,这会在重写任何文件之前清空文件(如果写出错误,则有丢失所有数据的风险)新数据,并可能导致新文件使用新磁盘扇区而不是重新使用已分配的扇区 space).
我是 Python 的新手。 我在文件夹中有“~”分隔的文件,例如
2021-11-02 23:04:17.106
#$!pre-dump!$#00067evnISO-8859-1
#$!languages!$#
##$!cdf!$#
UAFR~UAFRICA~
UEUE~UEUR (CIS + TURKEY)~
UEUW~UEUR (WESTERN)~
UFEA~UASIA~
UGBR~UUNITED KINGDOM~
ULAM~ULATIN AMERICA~
UMEA~UMIDDLE EAST~
UNAM~UNORTH AMERICA~
UOCE~UOCEANIA~
UUSA~UUSA~
文件中可能有没有“~”的行。 我需要在文本文件中获取包含“~”的行,这是我完成的 python 脚本
import os
sourcepath = os.listdir('input/')
for file in sourcepath:
input_file = 'input/' + file
print('conversion is going for:' + input_file)
with open(input_file, 'r+', encoding='cp437') as input_file:
input_file.seek(0)
lines = input_file.readlines()
input_file.seek(0)
for line in lines:
if "~" in line:
input_file.write(line)
以下为输入文件截图 input file screenshot 这是我在 运行 上面的 python 脚本之后得到的输出 output of the python script 我真的不知道我哪里错了...... 请帮助我..
如果您写入的新数据少于原始文件大小,就地重写文件不会删除无关数据。但这是一个微不足道的修复;重写后 explicitly truncate
the file,例如:
import os
for file in os.listdir('input/'):
input_file = 'input/' + file
print('conversion is going for:' + input_file)
with open(input_file, 'r+', encoding='cp437') as input_file:
# Removed unnecessary initial seek; r+ defaults to beginning of file
lines = input_file.readlines()
input_file.seek(0)
for line in lines:
if "~" in line:
input_file.write(line)
input_file.truncate() # With no arguments, truncate truncates to current file offset
可选地,truncate
可以在 .seek(0)
之后完成,这会在重写任何文件之前清空文件(如果写出错误,则有丢失所有数据的风险)新数据,并可能导致新文件使用新磁盘扇区而不是重新使用已分配的扇区 space).