我有一个小的txt文件,在该文件中,我需要在以特定关键字开头的行上用单个制表符替换多个空格,为此,我首先用单个制表符替换多个空格,然后将其替换为制表符我的脚本:
input_file=open('file.txt', "rw")
for i, line in input_file:
if line.startswith('City'):
while ' ' in line:
line = line.replace(' ', ' ')
input_file.write(line)
input_file.close
我有这个错误:
ValueError Traceback (most recent call last)
<ipython-input-26-dfd976cfc18d> in <module>()
1 input_file=open('file.txt', "rw")
----> 2 for i, line in input_file:
3 if line.startswith('City'):
4 while ' ' in line:
5 line = line.replace(' ', ' ')
ValueError: too many values to unpack
为什么会发生呢?
如果您确实需要i
,它是一个数字(如果start
未定义关键字参数,则从0开始),该数字在每次迭代时递增,并由生成enumerate
:
尝试添加enumerate()
:
for i, line in enumerate(input_file):
如果不这样做,请使用:
for line in input_file:
关于“双空格删除”,无需使用while
。只需使用if
和replace
:
if ' ' in line:
line = line.replace(' ', ' ')
input_file.write(line)
关于open()
,您可以避免使用with
statement关闭打开的文件。
这样做的好处是,文件在其套件完成后会正确关闭
with open('file.txt', "rw") as input_file:
for line in input_file:
if line.startswith('City'):
if ' ' in line:
line = line.replace(' ', ' ')
input_file.write(line)
请参阅本节的最后一个示例https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects
将open()
模式从更改"rw"
为"r+"
,以避免出现以下错误:
IOError:[Errno 9]错误的文件描述符
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句