将csv中的值替换为文本并将其写入文件并居中段落

2024-10-02 16:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

注:原始代码已更改以反映建议。原帖原封不动,供像我这样的新手参考。在

我有一个csv文件,可以包含从零到所有4个值。在

COLOUR,Code1,Code2  
Red,1,A  
White,3,D  
Blue,1,C  
Orange,2,D  

我有一个测试文件(test_测试.txt)其中包含以下内容:

^{pr2}$

我不知道该如何取代价值观。我想搜索颜色文件,如果找到一个值,用另一个值替换它:

"Red is the colour of blood, rubies, and strawberries." replaces Red  
"WhitePages is the world's largest and most trusted source for business." replaces White  
"The term blue moon is used colloquially to mean a rare event." replaces Blue  
"Orange you glad I have no more colours?" replaces Orange 

我想用两种格式(段落和列表)将其写入文本文件:

Red is the colour of blood, rubies, and strawberries, WhitePages is the world's largest and most trusted source for business, The term "blue moon" is used colloquially to mean a rare event, and Orange you glad I have no more colours?

我希望能够将此内容置于文本文档的中心:

Red is the colour of blood, rubies, and strawberries  
WhitePages is the world's largest and most trusted source for business  
The term "blue moon" is used colloquially to mean a rare event  
Orange you glad I have no more colours?  

这是修改后的准则,其中包含了建议。你知道怎么把最后4句话居中吗?在

import csv

with open('C:/Test/test_text.txt', 'a') as f:
    with open('C:/Test/colour.csv', 'rb') as test:
        colour_dict = {
            'Red':    "Red is the colour of blood, rubies, and strawberries",
            'White':  "WhitePages is the world's largest and most trusted source for business",
            'Blue':   "The term blue moon is used colloquially to mean a rare event",
            'Orange': "Orange you glad I have no more colours?"
        }
        reader = csv.DictReader(test)
        colour_list = tuple([colour_dict[row["COLOUR"]] for row in reader])

        # Wtite out comma separated list.

        if len(colour_list) == 0:
            colourGroup =  exit
        elif len(colour_list) == 1:
            colourGroup =  '%s' % colour_list #

        elif len(colour_list) == 2:
            colourGroup =  '%s and %s' % colour_list

        else:
            colourGroup = ('%s, ' * (len(colour_list)-1) + 'and %s') % tuple(colour_list)
        f.write(colourGroup)

        # Write  out list as separate lines.
        f.write ('\n\ncolour can influence our emotions, our actions and how we respond to various people, things and ideas. Much has been studied and written about colour and its impact on our daily lives.\n\nMany people believe that colours are powers, and that bright colours are especially powerful. Here are some of the meanings of colours and the energies contained in their corresponding stones.')
        f.write('\n\n' + ('\n'.join(colour_list)))

非常感谢任何帮助。在


Tags: andofcsvthetotestforis
1条回答
网友
1楼 · 发布于 2024-10-02 16:33:46

您可以使用字典将颜色转换为所需的替换:

colour_dict = {
    'Red':    "Red is the colour of blood, rubies, and strawberries",
    'White':  "WhitePages is the world's largest and most trusted source for business",
    'Blue':   "The term blue moon is used colloquially to mean a rare event",
    'Orange': "Orange you glad I have no more colours?"
}
colour_list = tuple([colour_dict[row["COLOUR"]] for row in reader])

现在,colour_list包含用它们的表达式替换的颜色。如果csv包含意外值,您应该处理异常。在

虽然问题中没有提到,但您的目标似乎是将结果导入到Word文档中。如果你想做到这一点,并且让你的文本真正居中,我认为最好的方法是生成一个富文本格式(RTF)文件,而不是纯文本文件。它支持真正的定心,并且可以逐字阅读。在

我上传了an example,也许这个simple tutorial和{a3}可以指导你。或者使用Word的XML格式也可以,但我没有这方面的经验。在

相关问题 更多 >