![](/img/trans.png)
[英]trying to replace “.” with new line (\n) in python, without space after the “.”
[英]Space and new line after every n'th character
我有一個從文本文件導入的字符串,下面是
code: input_file.open("text_file.txt", 'r')
text = input_file.read()
input_file.close()
現在我的問題是字符串長度將在1-999之間。 我需要以某種方式在第10個字母后留一個空格,並在第60個字母后換行。
目前,我嘗試使用:
def insertNewLines(text, lineLength):
if len(text) <= lineLength:
return text
else:
return text[:60] + ' '.join(text[i:i+10] for i in range(0,len(text),10)) + insertNewLines(text[60:],60)
我想做的是從文本文件中導入字母序列(1-999),然后使用python將序列導入到HTML文件中,然后再使用導入的序列以彩色編碼/編號/分割的方式寫入HTML文件,並在可見的格式。 我已經可以使用HTML文件了,但是我無法使文本在10個字母之后有一個空格,而在每60個字母之后沒有一個新行。
這就是我目前的嘗試看起來像 。
您可以通過使用join
並使用range
逐步遍歷nth
字符來完成此操作。 將文本按所需方式拆分后,可以在\\n
上拆分它,然后在每行之間插入p
元素。
f = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' * 35 #this generates a 910 character string
def break_apart(sep, step):
return sep.join(f[n:n + step] for n in range(0, len(f), step))
f = break_apart(' ', 10)
f = break_apart('\n', 60)
p = '<p>1 10 20 30 40 50 60</p>'
fp = '\n'.join(j for i in f.split('\n') for j in [p, i])
html = '<div>{}</div>'.format(fp)
print(html)
<div>
<p>1 10 20 30 40 50 60<p>
ABCDEFGHIJ KLMNOPQRST UVWXYZABCD EFGHIJKLMN OPQRSTUVWX YZABC
<p>1 10 20 30 40 50 60<p>
DEFGH IJKLMNOPQR STUVWXYZAB CDEFGHIJKL MNOPQRSTUV WXYZABCDEF
<p>1 10 20 30 40 50 60<p>
GHIJKLMNOP QRSTUVWXYZ ABCDEFGHIJ KLMNOPQRST UVWXYZABCD EFGH
<p>1 10 20 30 40 50 60<p>
IJKLMN OPQRSTUVWX YZABCDEFGH IJKLMNOPQR STUVWXYZAB CDEFGHIJK
<p>1 10 20 30 40 50 60<p>
L MNOPQRSTUV WXYZABCDEF GHIJKLMNOP QRSTUVWXYZ ABCDEFGHIJ KLM
<p>1 10 20 30 40 50 60<p>
NOPQRST UVWXYZABCD EFGHIJKLMN OPQRSTUVWX YZABCDEFGH IJKLMNOP
<p>1 10 20 30 40 50 60<p>
QR STUVWXYZAB CDEFGHIJKL MNOPQRSTUV WXYZABCDEF GHIJKLMNOP QR
<p>1 10 20 30 40 50 60<p>
STUVWXYZ ABCDEFGHIJ KLMNOPQRST UVWXYZABCD EFGHIJKLMN OPQRSTU
<p>1 10 20 30 40 50 60<p>
VWX YZABCDEFGH IJKLMNOPQR STUVWXYZAB CDEFGHIJKL MNOPQRSTUV W
<p>1 10 20 30 40 50 60<p>
XYZABCDEF GHIJKLMNOP QRSTUVWXYZ ABCDEFGHIJ KLMNOPQRST UVWXYZ
<p>1 10 20 30 40 50 60<p>
ABCD EFGHIJKLMN OPQRSTUVWX YZABCDEFGH IJKLMNOPQR STUVWXYZAB
<p>1 10 20 30 40 50 60<p>
CDEFGHIJKL MNOPQRSTUV WXYZABCDEF GHIJKLMNOP QRSTUVWXYZ ABCDE
<p>1 10 20 30 40 50 60<p>
FGHIJ KLMNOPQRST UVWXYZABCD EFGHIJKLMN OPQRSTUVWX YZABCDEFGH
<p>1 10 20 30 40 50 60<p>
IJKLMNOPQR STUVWXYZAB CDEFGHIJKL MNOPQRSTUV WXYZABCDEF GHIJ
<p>1 10 20 30 40 50 60<p>
KLMNOP QRSTUVWXYZ ABCDEFGHIJ KLMNOPQRST UVWXYZABCD EFGHIJKLM
<p>1 10 20 30 40 50 60<p>
N OPQRSTUVWX YZABCDEFGH IJKLMNOPQR STUVWXYZAB CDEFGHIJKL MNO
<p>1 10 20 30 40 50 60<p>
PQRSTUV WXYZABCDEF GHIJKLMNOP QRSTUVWXYZ
</div>
我假設您的“ text_file”中包含換行符,請逐行閱讀。
text = []
# My Sample Text files are utf-8 encoded
with io.open( 'text_file.txt','r', encoding='utf8') as fh:
for row,line in enumerate(fh,1):
text.append(line)
#end for
#end with = closing fh
使用Python測試:3.4.2
假設輸入的文本字符串一致:
import string
import random
text = ''
for i in range(16):
text += random.choice(string.ascii_lowercase)*10
def insert_new_lines(input_string):
output = []
for i in range(0, len(text), 60):
output.append(' '.join([text[j:j+10] for j in range(i, i+60, 10)]))
return '\n'.join(output)
print insert_new_lines(text)
返回,以隨機字母為例:
ssssssssss mmmmmmmmmm mmmmmmmmmm wwwwwwwwww zzzzzzzzzz aaaaaaaaaa
llllllllll llllllllll ffffffffff rrrrrrrrrr cccccccccc nnnnnnnnnn
rrrrrrrrrr xxxxxxxxxx uuuuuuuuuu qqqqqqqqqq
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.