Python 将组作为字符串写入文件
我是一个新手,想从txt文件中提取日期并将其写入另一个文件。每个日期都在一行中。但我不知道该怎么做。我尝试了附加,但它不起作用,这样它只写最后一个日期:Python 将组作为字符串写入文件,python,python-2.x,Python,Python 2.x,我是一个新手,想从txt文件中提取日期并将其写入另一个文件。每个日期都在一行中。但我不知道该怎么做。我尝试了附加,但它不起作用,这样它只写最后一个日期: f = open("Krupp.txt", "r") contents = f.read() f.close() #close the file # finditer # finds all Dates and shows them in a List (Montag, 15. März 2013) for m in re.finditer
f = open("Krupp.txt", "r")
contents = f.read()
f.close() #close the file
# finditer
# finds all Dates and shows them in a List (Montag, 15. März 2013)
for m in re.finditer("(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonnabend|Sonntag)(, )([123][0-9]|[1-9])(. )(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)( )([0-2][0-9][0-9][0-9])", contents):
print m.group(0)
# changed
with open("testoutput.txt", "a") as myfile:
myfile.write(m.group(0))
---编辑---
我变了
f.write(contents) # writes contents correctly to file with Umlauts
f.write(m.group(0))
到
现在,它会将所有日期写入文件,但它会直接在另一个日期之后写入。如果我想让它们彼此在下面,我需要补充什么
有人能帮忙吗
致以最诚挚的问候以下内容适用于我的python 2.7.6
#!/bin/python
# -*- coding: utf-8 -*-
import re
f = open("Krupp.txt", "r")
contents = f.read()
f.close() #close the file
# finditer
# finds all Dates and shows them in a List (Montag, 15. März 2013)
with open("testoutput.txt", "a+") as f:
for m in re.finditer("(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonnabend|Sonntag)(, )([123][0-9]|[1-9])(. )(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)( )([0-2][0-9][0-9][0-9])", contents):
print m.group(0)
f.write(m.group(0))
f.write("\n")
我用来测试的数据文件是:
Montag, 10. März 2013
Montag, 15. Juni 2013
Freitag, 15. März 2013
Montag, 15. Januar 2013
Dienstag, 15. März 2013
Montag, 15. März 2013
Juli, 15. Februar - incomplete
Juli, 15. Februar 2013
asdasdasdasdasd;lasdjkfas;dlfjk;a fjasl;dfj ;akdfj;askjdfa
Mittwoch, 15. März 2013
test
Mittwoch, 15. Januar 2013
blah
Montag, 15. März 2013
代码说明/更改:
#-*-编码:utf-8-*-
,才能在源代码中获得utf字符open(“testoutput.txt”、“a+”)
这将在中打开文件李>
with
块完成时)。它通常更安全,因为它还会在出现异常和错误时关闭文件f.write(“\n”)
:回答您的编辑。。。在每个条目后添加新行myfile.write(“\n”)
请提供更多详细信息。提供文件外观的示例。你从你的正则表达式比赛中得到什么了吗?此外,每次以“写入”模式打开循环时,也会不断在循环中过度写入文件。您希望在循环之外打开文件,然后进行写入。您只需在每次迭代中覆盖您的文件,您可能需要open(“testoutput.txt”,“a”)
。此外,在每次迭代中打开和写入文件都非常慢-保存到字符串中,然后再编写一次。非常感谢:)我可能需要很多帮助来完成下一步谢谢。由于缺少词汇,我常常很难找到答案
Montag, 10. März 2013
Montag, 15. Juni 2013
Freitag, 15. März 2013
Montag, 15. Januar 2013
Dienstag, 15. März 2013
Montag, 15. März 2013
Juli, 15. Februar - incomplete
Juli, 15. Februar 2013
asdasdasdasdasd;lasdjkfas;dlfjk;a fjasl;dfj ;akdfj;askjdfa
Mittwoch, 15. März 2013
test
Mittwoch, 15. Januar 2013
blah
Montag, 15. März 2013