对于每一行 "for loop" 无法在我的脚本中实现
For each line "for loop" cant implement in my script
我是 Python 的新手,目前我正在为你们中的大多数人努力 "easy" 步骤。
我的目标是将行从一个源文件复制并粘贴到目标文件。
但。目标文件应保留其前 12 行。在 12 行之后,它应该从源文件中获取所有行。到目前为止效果很好。我只需要为最后一部分设置线条。
所以我必须放入一个循环,就像“对于你在目标文件中找到的每一行替换它)
config_fstab = '# /etc/fstab: static file system information.'
einhaengepunkte_replace = '#Eigene_Einhaengepunkte'
with open(r'C:\Users\sample\Desktop\SCRIPTING02.txt') as input_header_stays:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','w') as zwischenspeicher:
zeilen = input_header_stays.readlines()
for i, line in enumerate(zeilen):
if line.startswith(config_fstab):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
input_header_stays.close()
zwischenspeicher.close()
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt') as input_scripting_fstab:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','a') as zwischenspeicher:
zeilen = input_scripting_fstab.readlines()
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
zwischenspeicher.write(zeilen[i + 13])
zwischenspeicher.write(zeilen[i + 14])
zwischenspeicher.write(zeilen[i + 15])
zwischenspeicher.write(zeilen[i + 16])
input_scripting_fstab.close()
zwischenspeicher.close()
这是我的代码。
我认为我需要帮助的棘手部分是这个:
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt') as input_scripting_fstab:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','a') as zwischenspeicher:
zeilen = input_scripting_fstab.readlines()
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
zwischenspeicher.write(zeilen[i + 13])
zwischenspeicher.write(zeilen[i + 14])
zwischenspeicher.write(zeilen[i + 15])
zwischenspeicher.write(zeilen[i + 16])
线越来越多,我自己插不进去。这就是我的 Python 脚本需要大脑的地方。
您只需要一个循环来编写所需的行数。
lines_to_copy = 16
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt', 'r') as input_scripting_fstab:
zeilen = input_scripting_fstab.readlines()
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt', 'a') as zwischenspeicher:
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
for n in range(lines_to_copy): # Copy the next 16 lines.
zwischenspeicher.write(zeilen[i + n]) # <---
如果只想在某个点之后复制到文件末尾,则不需要枚举。
einhaengepunkte_replace = '#Eigene_Einhaengepunkte'
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt', 'r') as input_scripting_fstab:
zeilen = input_scripting_fstab.readlines()
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt', 'a') as zwischenspeicher:
writing = False
for line in zeilen:
# This flag just tells us when to start writing
if line.startswith(einhaengepunkte_replace):
writing = True
if writing:
zwischenspeicher.write(line)
既然你有一个模式,你甚至可以把它扔进一个函数中。
def copy_it(source='', destination='', start_point='', mode='a'):
with open(source, 'r') as source_file:
source_lines = source_file.readlines()
with open(destination, mode) as dest_file:
writing = False
for line in source_lines:
if line.startswith(start_point):
writing = True
if writing:
dest_file.write(line)
copy_it(source=r'C:\Users\sample\Desktop\SCRIPTING.txt',
destination=r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt',
start_point='#Eigene_Einhaengepunkte')
copy_it(source=r'C:\Users\sample\Desktop\SCRIPTING02.txt',
destination=r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt',
start_point='# /etc/fstab: static file system information.',
mode='w')
我是 Python 的新手,目前我正在为你们中的大多数人努力 "easy" 步骤。
我的目标是将行从一个源文件复制并粘贴到目标文件。 但。目标文件应保留其前 12 行。在 12 行之后,它应该从源文件中获取所有行。到目前为止效果很好。我只需要为最后一部分设置线条。
所以我必须放入一个循环,就像“对于你在目标文件中找到的每一行替换它)
config_fstab = '# /etc/fstab: static file system information.'
einhaengepunkte_replace = '#Eigene_Einhaengepunkte'
with open(r'C:\Users\sample\Desktop\SCRIPTING02.txt') as input_header_stays:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','w') as zwischenspeicher:
zeilen = input_header_stays.readlines()
for i, line in enumerate(zeilen):
if line.startswith(config_fstab):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
input_header_stays.close()
zwischenspeicher.close()
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt') as input_scripting_fstab:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','a') as zwischenspeicher:
zeilen = input_scripting_fstab.readlines()
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
zwischenspeicher.write(zeilen[i + 13])
zwischenspeicher.write(zeilen[i + 14])
zwischenspeicher.write(zeilen[i + 15])
zwischenspeicher.write(zeilen[i + 16])
input_scripting_fstab.close()
zwischenspeicher.close()
这是我的代码。
我认为我需要帮助的棘手部分是这个:
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt') as input_scripting_fstab:
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt','a') as zwischenspeicher:
zeilen = input_scripting_fstab.readlines()
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
zwischenspeicher.write(line)
zwischenspeicher.write(zeilen[i + 1])
zwischenspeicher.write(zeilen[i + 2])
zwischenspeicher.write(zeilen[i + 3])
zwischenspeicher.write(zeilen[i + 4])
zwischenspeicher.write(zeilen[i + 5])
zwischenspeicher.write(zeilen[i + 6])
zwischenspeicher.write(zeilen[i + 7])
zwischenspeicher.write(zeilen[i + 8])
zwischenspeicher.write(zeilen[i + 9])
zwischenspeicher.write(zeilen[i + 10])
zwischenspeicher.write(zeilen[i + 11])
zwischenspeicher.write(zeilen[i + 12])
zwischenspeicher.write(zeilen[i + 13])
zwischenspeicher.write(zeilen[i + 14])
zwischenspeicher.write(zeilen[i + 15])
zwischenspeicher.write(zeilen[i + 16])
线越来越多,我自己插不进去。这就是我的 Python 脚本需要大脑的地方。
您只需要一个循环来编写所需的行数。
lines_to_copy = 16
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt', 'r') as input_scripting_fstab:
zeilen = input_scripting_fstab.readlines()
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt', 'a') as zwischenspeicher:
for i, line in enumerate(zeilen):
if line.startswith(einhaengepunkte_replace):
for n in range(lines_to_copy): # Copy the next 16 lines.
zwischenspeicher.write(zeilen[i + n]) # <---
如果只想在某个点之后复制到文件末尾,则不需要枚举。
einhaengepunkte_replace = '#Eigene_Einhaengepunkte'
with open(r'C:\Users\sample\Desktop\SCRIPTING.txt', 'r') as input_scripting_fstab:
zeilen = input_scripting_fstab.readlines()
with open(r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt', 'a') as zwischenspeicher:
writing = False
for line in zeilen:
# This flag just tells us when to start writing
if line.startswith(einhaengepunkte_replace):
writing = True
if writing:
zwischenspeicher.write(line)
既然你有一个模式,你甚至可以把它扔进一个函数中。
def copy_it(source='', destination='', start_point='', mode='a'):
with open(source, 'r') as source_file:
source_lines = source_file.readlines()
with open(destination, mode) as dest_file:
writing = False
for line in source_lines:
if line.startswith(start_point):
writing = True
if writing:
dest_file.write(line)
copy_it(source=r'C:\Users\sample\Desktop\SCRIPTING.txt',
destination=r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt',
start_point='#Eigene_Einhaengepunkte')
copy_it(source=r'C:\Users\sample\Desktop\SCRIPTING02.txt',
destination=r'C:\Users\sample\Desktop\ZWISCHENSPEICHER.txt',
start_point='# /etc/fstab: static file system information.',
mode='w')