Python 从文件的第一行中删除前32个字符
我有一个长文本文件,总是以32个字符的MD5哈希开头,如下所示:Python 从文件的第一行中删除前32个字符,python,string,file,Python,String,File,我有一个长文本文件,总是以32个字符的MD5哈希开头,如下所示: f4f494da100a3577420a7ff7c32ab5707:55:40 PM |用户名:text 我的目标是去掉该文件第一行的前32个字符,然后覆盖该行。我的代码(如下)成功地抓取了行并删除了字符,但删除了文件中的所有其他内容 with open(x, 'r') as fin: lines = fin.readlines() lines = lines[0] lines = lines[32:] w
f4f494da100a3577420a7ff7c32ab5707:55:40 PM |用户名:text
我的目标是去掉该文件第一行的前32个字符,然后覆盖该行。我的代码(如下)成功地抓取了行并删除了字符,但删除了文件中的所有其他内容
with open(x, 'r') as fin:
lines = fin.readlines()
lines = lines[0]
lines = lines[32:]
with open(x, 'w') as fout:
for line in lines:
fout.write(line)
我知道我可以用
行[0]
编辑第一行,但我不确定如何用这种方式删除字符(可能是re
?)使用行[0]
是可以的-唯一的问题是您正在覆盖行
变量,从而丢失其他行:
with open(x, 'r') as fin:
lines = fin.readlines()
lines[0] = lines[0][32:] # Strip just the first line
with open(x, 'w') as fout:
for line in lines:
fout.write(line)
使用
行[0]
是可以的-唯一的问题是您正在覆盖行
变量,从而丢失其他行:
with open(x, 'r') as fin:
lines = fin.readlines()
lines[0] = lines[0][32:] # Strip just the first line
with open(x, 'w') as fout:
for line in lines:
fout.write(line)
您只需手动读取前32个字符,然后调用
readlines
读取其余字符:
with open(x, 'r') as fin:
header = fin.read(32)
lines = fin.readlines()
with open(x, 'w') as fout:
fout.writelines(lines)
您只需手动读取前32个字符,然后调用
readlines
读取其余字符:
with open(x, 'r') as fin:
header = fin.read(32)
lines = fin.readlines()
with open(x, 'w') as fout:
fout.writelines(lines)
谢谢这看起来不错,但它仍然只覆盖了整个文件的第一行。@celestialroad是否可能该文件已被您的代码覆盖,而这只是利用剩下的那一行并使用它?谢谢!这看起来不错,但它仍然仅用第一行就覆盖了整个文件。@celestialroad是否可能该文件已被代码覆盖,而这只是利用剩下的那一行并使用它?