Python 2.7,编码外语和tkinter

你好,世界!
我目前正在编写一个脚本,该脚本读取输入文件(在txt中)并输出制表符分隔的文件,该文件将被转换为CSV(输入到SQLite数据库)。它识别词典中的特殊字符,并在每次找到像')'或'|'这样的字符时插入制表符'\t'。我是葡萄牙人,我是编程和Python的新手,但在经历了所有的编码问题之后(因为我们有一些奇怪的字符,如á、à、ã、≈等等),我确实设法在窗口中打印出了口音和制表符。但现在我就是想不出如何将打印的函数输出到txt文件中!我尝试了from__Future__IMPORT打印_函数,但我就是想不出如何输出它。也许你们可以在这件事上帮我,告诉我哪里做错了,纠正我!请不要对我不好,我刚刚开始编程,我需要你们这样有经验的程序员的帮助!
以下是代码:

选择 | 换行 | 行号
  1. # -*- coding: utf8 -*-
  2. from Tkinter import *
  3. import Tkinter as tk
  4. import codecs
  5. from string import *
  6. import sys, win32com.client
  7.  
  8.  
  9. #u'\xe1'.encode('utf-8')
  10.  
  11. root = tk.Tk()
  12. root.title('Tentative 1')
  13.  
  14. #file = open('Data path to txt file to be read', 'r+')
  15.  
  16. #sentence = file.read()
  17. #sentence = sentence.decode('cp1252', 'strict')
  18.  
  19.  
  20. with codecs.open('Data path to txt file to be read', encoding='latin1') as f:
  21.     sentence = f.read()
  22.  
  23.  
  24. #if u'\xed' in sentence:
  25.    #print sentence
  26.  
  27. #else:
  28.     #sentence = sentence.replace("u'\xed'", "-")
  29.  
  30. def task():
  31.     print '\n', sentence
  32.  
  33. def replace_all(text, dic):
  34.     for i, j in dic.iteritems():
  35.         text = text.replace(i, j)
  36.     return text
  37. reps = {'^^':'\t', '(':'\t', ')':'\t', 'ISBN:':'\t', '--':'\t', '"':'\t', '.:':'\t', '|':'\t', 'p.':'\t', ',':' '}
  38. txt = replace_all(sentence, reps)
  39.  
  40.  
  41. def txt_conversor():
  42.     txt = replace_all(sentence, reps)
  43.     print '\n', txt
  44.  
  45. log = open('log.txt', 'w')
  46.  
  47. print(txt_conversor, file1=log)
  48.  
  49. results = tk.Button(root, text='Results', width=25, command=task)
  50. results.pack()
  51. txt = tk.Button(root, text='Convert Results', width=25, command=txt_conversor)
  52. txt.pack()
  53.  
  54. root.mainloop()

它说我有一个语法错误的"打印'\n',句子",但我知道这不是主要的问题。
输入文件:
科雷亚,特蕾莎·平托;亨里克斯,维吉尼亚;胡利昂,鲁伊·佩德罗^(2013年),第九届葡萄牙语议会:西班牙,纳图雷扎,社会--,国际标准编号:978-972-99436-6-9,|里斯本:葡萄牙与热格拉夫斯协会。第977页电子书
多明格斯,L.;阿利斯特,J;伊巴涅斯·马丁内斯;纳塔里奥,M.;费尔南德斯,贡萨洛·波塔^^(2013)《EStudio Social oEconico de la Frontera entre葡萄牙y España》,|Edita Riet,--Salamanca。ISBN:978-84-7797-403-1

# 回答1


是否需要写入制表符分隔的文件?您可以写入文件并使用\t表示制表符,但如果要将其转换为CSV,为什么不跳过转换直接写入CSV呢?

选择 | 换行 | 行号
  1. import csv
  2. with open('filename','wb') as fout:
  3.     csvwriter = csv.writer(fout,dialect='excel',quoting=csv.QUOTE_MINIMAL)
  4.     for lines in txt:
  5.         csvwriter.writerow(lines)
  6.  

标签: python

添加新评论