我试图将文本添加到来自-a开关的配置文件中。 其余代码确实有效,但不确定是谁调用select配置文件并编写新文件备份到其中。
parser = argparse.ArgumentParser(description='Copy multiple Files from a specified data file')
parser.add_argument('-c', '--configfile', default="config.dat", help='file to read the config from')
parser.add_argument('-l', '--location', default="/home/admin/Documents/backup/",help='Choose location to store files')
parser.add_argument('-a', '--addfile', help='Choose a file to add to list')
def read_config(data):
try:
dest = '/home/admin/Documents/backup/'
# Read in date from config.dat
data = open(data)
# Interate through list of files '\n'
filelist = data.read().split('\n')
# Copy through interated list and strip white spaces and empty lines
for file in filelist:
if file:
shutil.copy(file.strip(), dest)
except FileNotFoundError:
logger.error("Config file not found")
print ("Config File not found")
def add_to_file():
try:
f = open('configfile','r')
f.read()
addto = f.write('addfile')
f.close()
except FileNotFoundError:
pass**
args = vars(parser.parse_args())
read = read_config(args['configfile'])
add = add_to_file(args['addfile'])
当我运行此操作时,我收到如下错误:
add = add_to_file(args['addfile'])
TypeError: add_to_file() takes 0 positional arguments but 1 was given
我出错的任何想法?
感谢您的帮助
答案 0 :(得分:2)
错误中存在问题:
add_to_file() takes 0 positional arguments but 1 was given
add_to_file
没有采取任何行动,但你将其传递给它。
编辑:这里有一些问题,但我原来的答案是你的直接障碍:
a
模式打开它,如下所示:open('configfile', 'a')
而不是r
模式add_to_file
做了什么?在配置中添加更多文件,这些文件将在随后的read_config运行中复制?对于#2,请考虑使用上下文管理器。它将处理为您关闭文件。它看起来像这样:
with open('some_file.txt', 'r'):
do_some_stuff()
上述示例将处理打开和关闭文件,即使存在例外情况。