Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取文本文件并按字符分隔成行_Python_Python 3.x - Fatal编程技术网

Python 读取文本文件并按字符分隔成行

Python 读取文本文件并按字符分隔成行,python,python-3.x,Python,Python 3.x,我有一个包含以下示例内容的文本文件: 12/13/18, 14:06 - her:IMG-20181213-WA0005.jpg (file attached)12/13/18, 14:06 - her:PTT-20181213-WA0006.opus (file attached)12/13/18, 14:07 - kristal: its not in the right quality?12/13/18, 14:14 - her:bla bla bla bla12/13/18, 14:43

我有一个包含以下示例内容的文本文件:

12/13/18, 14:06 - her:IMG-20181213-WA0005.jpg (file attached)12/13/18, 14:06 - her:PTT-20181213-WA0006.opus (file attached)12/13/18, 14:07 - kristal: its not in the right quality?12/13/18, 14:14 - her:bla bla bla bla12/13/18, 14:43 - kristal: ok for this size12/13/18, 14:43 - kristal: somthing somthing
12/13/18, 14:43 - kristal: rect12/13/18, 14:43 - Enav Sharon-kristal: need square12/13/18, 14:48 - her:sending files12/13/18, 14:49 - Enav Sharon-kristal: ok then

如何生成一个代码,读取所有文本并将其分成行(当您看到12个换行时)并保存它。

您可以使用string replace()方法执行此操作:

your_long_string.replace('12', '\n12')
你可以更具体一些;也许您担心某些邮件包含日期之外的“12”:

your_long_string.replace('12/', '\n12/')
如果您需要更加健壮,您需要学习使用正则表达式(这可能会变得有点复杂;)

您可以将其拆分为一系列行:

your_long_string.replace('12/', '\n12/').splitlines()
您可以按如下方式循环每一行:

for line in your_long_string.replace('12/', '\n12/').splitlines():
    # do whatever
    print(line)
或者您可以将其保存回文本文件:

file = open(filename, 'r')
long_string = file.read()
file.close()
with open(filename, 'w') as file:
    file.write(long_string.replace('12/', '\n12/'))

如果首选输出是行列表,请尝试split()

要连接这些行,请使用join()


您确定要在每个
12
之前添加
新行吗

我知道它来自一个日期,但如果你看:

12/13/18, 14:06 - her:IMG-20181213-WA0005.jpg
文本中有一个
12
,您可能不需要换行

如果您在日期之前中断,则解决方案可能是可靠的:

with open('file.txt', 'r') as file: # the file you want to read
    with open('new_file.txt', 'w') as new_file: # the file you want to save
        for line in file.readlines():

            new_line = re.sub('(\d+/\d+/\d+)', '\n\g<1>', line).strip()) # find all dates

            new_file.write('{}\n'.format(new_line)) # save to new file
打开('file.txt',r')作为文件:#要读取的文件
打开('new_file.txt','w')作为新的_文件:#要保存的文件
对于文件.readlines()中的行:
new_line=re.sub(“(\d+/\d+/\d+”,“\n\g”,line).strip())#查找所有日期
new_file.write({}\n.format(new_line))#保存到新文件
它很简单:D

如果希望结果是列表

data = string.split(“12”)
或者,如果希望结果是字符串除以行

data = “\n”.join(string.split(“12”))

Python有很多很好的方法@graphicsgraphics乐于提供帮助:)如果您觉得您的问题已经得到了回答,请随意接受答案。
data = string.split(“12”)
data = “\n”.join(string.split(“12”))