将数据写入文件然后移动到桌面
Writing Data to File then Moving to Desktop
我确定这真的很简单,但我不知道如何将解析结果放入自己的文件中,然后使用 python 将其移动到我的桌面。到目前为止,这是我的代码。我只想将结果“名称”另存为自己的文件,然后将其移动到我的桌面,但我无法在任何地方找到答案。这是一种不常见的做法吗?
from gedcom.element.individual import IndividualElement
from gedcom.parser import Parser
import os
import shutil
import pickle
# Path to your `.ged` file
file_path = '/Users/Justin/Desktop/Lienhard_Line.ged'
# Initialize the parser
gedcom_parser = Parser()
# Parse your file
gedcom_parser.parse_file(file_path, False)
root_child_elements = gedcom_parser.get_root_child_elements()
# Iterate through all root child elements
for element in root_child_elements:
# Is the `element` an actual `IndividualElement`? (Allows usage of extra functions such as `surname_match` and `get_name`.)
if isinstance(element, IndividualElement):
# Get all individuals whose surname matches "Doe"
if element.surname_match('Lienhard'):
# Unpack the name tuple
(first, last) = element.get_name()
names = (first + " " + last)
pickle.dumps(names)
将文件保存到一个位置然后将其移动到另一个位置不是通常的做法,不是。保存到最终位置即可。
from pathlib import Path
pic = Path.home() / 'Desktop' / 'names.pickle'
with pic.open('w') as picklefile:
pickle.dump(names, picklefile)
pathlib
library 使处理文件名比旧的 os.path
API 更容易一些,尽管两者都很常用。
写入再重命名有一定的用处;如果您需要绝对确保将数据保存在某处,将其保存到临时文件直到可以重命名为其最终名称是一种相当常见的技术。但在这种情况下,首先保存到不同的位置似乎只会引入脆弱性。
以上假定您的主目录中有一个名为 Desktop
的目录,这通常是面向初学者的系统的默认目录。为了完全健壮,代码应该创建该目录(如果它不存在),或者可能只是保存到您的主目录。
事实上,对于大多数用途来说,更好的约定是始终保存在当前目录中,并让用户从那里获取。另一个目录中的硬编码路径只会增加混乱和不确定性。
with open('names.pickle', 'w') as picklefile:
pickle.dump(names, picklefile)
此代码在调用用户的当前工作目录中创建一个名为 names.pickle
的文件。操作系统正是为此目的提供了当前工作目录的概念。如果您需要有关其工作原理的更多详细信息,也可以参阅 。
我确定这真的很简单,但我不知道如何将解析结果放入自己的文件中,然后使用 python 将其移动到我的桌面。到目前为止,这是我的代码。我只想将结果“名称”另存为自己的文件,然后将其移动到我的桌面,但我无法在任何地方找到答案。这是一种不常见的做法吗?
from gedcom.element.individual import IndividualElement
from gedcom.parser import Parser
import os
import shutil
import pickle
# Path to your `.ged` file
file_path = '/Users/Justin/Desktop/Lienhard_Line.ged'
# Initialize the parser
gedcom_parser = Parser()
# Parse your file
gedcom_parser.parse_file(file_path, False)
root_child_elements = gedcom_parser.get_root_child_elements()
# Iterate through all root child elements
for element in root_child_elements:
# Is the `element` an actual `IndividualElement`? (Allows usage of extra functions such as `surname_match` and `get_name`.)
if isinstance(element, IndividualElement):
# Get all individuals whose surname matches "Doe"
if element.surname_match('Lienhard'):
# Unpack the name tuple
(first, last) = element.get_name()
names = (first + " " + last)
pickle.dumps(names)
将文件保存到一个位置然后将其移动到另一个位置不是通常的做法,不是。保存到最终位置即可。
from pathlib import Path
pic = Path.home() / 'Desktop' / 'names.pickle'
with pic.open('w') as picklefile:
pickle.dump(names, picklefile)
pathlib
library 使处理文件名比旧的 os.path
API 更容易一些,尽管两者都很常用。
写入再重命名有一定的用处;如果您需要绝对确保将数据保存在某处,将其保存到临时文件直到可以重命名为其最终名称是一种相当常见的技术。但在这种情况下,首先保存到不同的位置似乎只会引入脆弱性。
以上假定您的主目录中有一个名为 Desktop
的目录,这通常是面向初学者的系统的默认目录。为了完全健壮,代码应该创建该目录(如果它不存在),或者可能只是保存到您的主目录。
事实上,对于大多数用途来说,更好的约定是始终保存在当前目录中,并让用户从那里获取。另一个目录中的硬编码路径只会增加混乱和不确定性。
with open('names.pickle', 'w') as picklefile:
pickle.dump(names, picklefile)
此代码在调用用户的当前工作目录中创建一个名为 names.pickle
的文件。操作系统正是为此目的提供了当前工作目录的概念。如果您需要有关其工作原理的更多详细信息,也可以参阅