我想存储我计划稍后用于使用PyPDF2在我的计算机上对pdfs进行排序的值。 我想如果我创建了一个类并为每种类型的文件存储了标识信息(例如描述符,该文件唯一的字符串,以后可以通过PyPDF2找到,例如帐号,以及文件的路径应该转移到)这将工作。像这样:
class File_Sort(object):
def __init__(self, identifier, file_text, file_path):
self.identifier = identifier
self.file_text = file_text
self.file_path = file_path
所以我的一个示例输入是:
filetype0001 = File_Sort("Phone Bill", "123456", "/Users/Me/PhoneBills/")
我希望能够让用户通过一系列raw_input问题生成新的文件类型,但我无法计算如何生成变量来创建新实例,以便我可以得到:
filetype000 [自动递增数字] = File_Sort(UserResponse1,UserResponse3,UserResponse3)。
创建" filetype000 [自动递增数字]"文本本身似乎很容易:
file_number += 1
file_name = "filetype" + str(file_number).zfill(4)
但是如何将生成的file_name字符串转换为变量并填充它?
答案 0 :(得分:0)
听起来你想要动态创建变量。这几乎总是愚蠢的事情。相反,您应该使用像列表或字典这样的数据结构,并由您想要动态生成的变量名称部分编制索引。
因此,不是创建名为filetype000
的列表,而是从名为filetypes
的列表开始,并附加内部列表,这样您就可以filetypes[0]
来实现它。或者,如果字符串名称对您的特定应用程序更有意义,请让filetypes
成为字典,并使用filetypes['pdf']
之类的内容访问内部列表。
我在这里有点模糊,因为我并不真正理解你所有的伪代码。你的例子的[automatically incrementing number]
部分的目的是什么并不明显,所以我或多或少地忽略了这些部分。您可能只想从一个空列表和append
值开始,而不是以某种方式将其初始化为特定大小并对其进行神奇索引。
答案 1 :(得分:0)
所以这就是我最终使用的内容:
file_descriptor = []
file_string = []
file_location = []
filetype_new = len(file_descriptor)
input_descriptor = raw_input("What is the description of the new file type? ")
file_descriptor.append(input_descriptor)
input_filestring = raw_input("What is unique string to search for in this file type? ")
file_string.append(input_filestring)
input_filelocation = raw_input("where should we put this file type? ")
file_location.append(input_filelocation)
print("file%s: %s, \t%s, \t%s" % (str(filetype_new+1).zfill(4), file_descriptor[filetype_new], file_string[filetype_new], file_location[filetype_new]))
review = raw_input("\nWould you like to review the current files? y/n ").lower()
while review not in "yn":
review = raw_input("Sorry, I don't understand. Would you like to review your file types? y/n ").lower()
print("There are currently sort instructions for %s filetypes: " % (len(file_descriptor)))
file_increment = 0
while file_increment in range(0, len(file_descriptor)):
print("file%s: %s, \t%s, \t%s" % (
str(file_increment + 1).zfill(4), file_descriptor[file_increment], file_string[file_increment],
file_location[file_increment]))
file_increment += 1
感谢您的建议。