我有一個功能,其中轉換是一個列表和文件名是輸入文件的名稱。我想在一行中寫入5個字符,然後添加一個新行並將5個字符添加到該行,並添加一個新行,直到沒有任何內容從列表轉換寫入文件文件名爲止。我怎樣才能做到這一點?如何在Python中將新行寫入文件?
0
A
回答
0
將字符串列表轉換爲一個大字符串,然後一次循環該字符串中的五個字符,並在每次迭代循環後插入「\ n」。然後將其寫入文件。這裏是什麼,我的意思是一個基本的例子,可能需要一些調整,但它會給你的想法:
# concatenate all the strings for simplicity
big_string = ""
for single_string in conversion:
big_string += single_string
# loop through using 5 characters at a time
string_with_newlines = ""
done = False
while not done:
next_five_chars = big_string[:5]
big_string = big_string[5:]
if next_five_chars:
string_with_newlines += next_five_chars + "\n"
else:
done = True
# write it all to file
with open(filename, "w") as your_file:
your_file.write(string_with_newlines)
0
從我想我明白你的問題,你可能需要的代碼看起來像這樣:
import os
def write_data_file(your_collection, data_file_path):
"""Writes data file from memory to previously specified path."""
the_string = ''
for row in your_collection:
for i, c in enumerate(row):
if i % 5 < 4:
the_string += c
else:
the_string += os.linesep + c
with open(data_file_path, 'w') as df:
df.write(the_string)
my_collection = [
"This is more than five characters",
"This is definately more than five characters",
"NOT",
"NADA"
]
write_data_file(my_collection, '/your/file/path.txt')
除此之外,你可能需要澄清你在問什麼。此代碼片斷循環訪問集合(如列表),然後遍歷集合中該行所包含的假定字符串。只要達到5個字符限制,它就會添加新行。
0
def foo(conversion, filename):
with open(filename, "a") as f:
line = ""
for s in conversion:
for c in s:
if len(line) < 5:
line += c
else:
f.write(line + "\n")
line = c
f.write(line)
0
我做了一個功能分組列表:
import itertools
def group(iterable, n):
gen = (char for substr in iterable for char in substr)
while True:
part = ''.join(itertools.islice(gen, 0, n))
if not part:
break
yield part
介紹:
>>> l = ['DBTsiQoECGPPo', 'd', 'aDAuehlM', 'FbUnSuMLuEbHe', 'jRvARVZMn', 'SbGCi'
, 'jhI', 'Rpbd', 'uspffRvPiAmbQEoZDFAG', 'RIbHAcbREdqpMDX', 'bqVMrN', 'FtU', 'nu
fWcfjfmAaUtYtwNUBc', 'oZvk', 'EaytqdRkICuxqbPaPulCZlD', 'dVrZdidLeakPT', 'qttRfH
eJJMOlJRMKBM', 'SAiBrdPblHtRGpjpZKuFLGza', 'RxrLgclVavoCmPkhR', 'YuulTYaNTLghUkK
riOicMuUD']
>>> list(group(l, 5))
['DBTsi', 'QoECG', 'PPoda', 'DAueh', 'lMFbU', 'nSuML', 'uEbHe', 'jRvAR', 'VZMnS'
, 'bGCij', 'hIRpb', 'duspf', 'fRvPi', 'AmbQE', 'oZDFA', 'GRIbH', 'AcbRE', 'dqpMD
', 'XbqVM', 'rNFtU', 'nufWc', 'fjfmA', 'aUtYt', 'wNUBc', 'oZvkE', 'aytqd', 'RkIC
u', 'xqbPa', 'PulCZ', 'lDdVr', 'ZdidL', 'eakPT', 'qttRf', 'HeJJM', 'OlJRM', 'KBM
SA', 'iBrdP', 'blHtR', 'GpjpZ', 'KuFLG', 'zaRxr', 'LgclV', 'avoCm', 'PkhRY', 'uu
lTY', 'aNTLg', 'hUkKr', 'iOicM', 'uUD']
>>> '\n'.join(group(l, 5))
'DBTsi\nQoECG\nPPoda\nDAueh\nlMFbU\nnSuML\nuEbHe\njRvAR\nVZMnS\nbGCij\nhIRpb\ndu
spf\nfRvPi\nAmbQE\noZDFA\nGRIbH\nAcbRE\ndqpMD\nXbqVM\nrNFtU\nnufWc\nfjfmA\naUtYt
\nwNUBc\noZvkE\naytqd\nRkICu\nxqbPa\nPulCZ\nlDdVr\nZdidL\neakPT\nqttRf\nHeJJM\nO
lJRM\nKBMSA\niBrdP\nblHtR\nGpjpZ\nKuFLG\nzaRxr\nLgclV\navoCm\nPkhRY\nuulTY\naNTL
g\nhUkKr\niOicM\nuUD'
寫的'\n'.join(group(l, 5))
結果到一個文件中。
0
l = ["one", "two", "three", "four", "five"]
def write(conversion, filename):
string = "".join(conversion)
f = open(filename, "a")
for i in range(5, len(string) + 5, 5):
f.write(string[i-5:i])
f.write("\n")
if __name__ == '__main__':
write(l, "test.txt")
此創建一個名爲「test.txt的」與內容文件:
onetw
othre
efour
onetw
othre
efour
five
相關問題
- 1. 如何在使用Python寫入文件時寫入新行?
- 2. 如何在文件中寫入新行?
- 3. 將新行寫入文件
- 4. 如何將字典鍵寫入python中的新文本文件?
- 5. 如何在Java中將新行寫入文件?
- 6. 在Python中將文本寫入文件
- 7. 如何在Python中將文件列表寫入文件?
- 8. 通過在python中輸入將多行寫入文本文件?
- 9. 如何在Python中將文本列表寫入文本文件
- 10. Python:如何將int32寫入csv文件?
- 11. 如何將python列表寫入csv文件中的特定行?
- 12. 如何在codeigniter中寫入新文件?
- 13. 如何在python中將數據寫入文本文件?
- 14. 如何在Python中將文字數字代碼寫入文件?
- 15. 如何在python中將數據寫入文本文件?
- 16. 如何在Python中將多個矩陣寫入文本文件?
- 17. 在Python中寫入同一行文件
- 18. 如何將中文文本寫入python中的文件
- 19. 如何在Erlang中將行逐行寫入文件中
- 20. 在python中將變量寫入新文本行
- 21. 如何將文本文件中的下一行寫入新的文本文件
- 22. 如何讀取.json文件並寫入新文件,用Python插入換行符
- 23. 如何在使用PHP的文本文件中寫入新行?
- 24. 在perl中寫入新行到文件
- 25. 在Python中寫入文件
- 26. 如何將文本的特定行寫入新文件?
- 27. 將指定的行寫入新文件
- 28. JAVA將新行寫入.CSV文件
- 29. Abap將新行寫入文件
- 30. Python - 寫入新行
你需要的是建立一個字符串,並添加'「\ n」'你想每次新隊。爲了澄清,「轉換」是什麼樣的列表?這是一個字符串列表嗎?字符列表? –
它是一個字符串列表。 – user3459811