Python的问题';s file.write()方法和字符串处理
此时我遇到的问题(对于Python来说是新手)是将字符串写入文本文件。我遇到的问题是,字符串之间没有换行符,或者在每个字符之后都有换行符。代码如下:Python的问题';s file.write()方法和字符串处理,python,string,list,file,Python,String,List,File,此时我遇到的问题(对于Python来说是新手)是将字符串写入文本文件。我遇到的问题是,字符串之间没有换行符,或者在每个字符之后都有换行符。代码如下: import string, io FileName = input("Arb file name (.txt): ") MyFile = open(FileName, 'r') TempFile = open('TempFile.txt', 'w', encoding='UTF-8') for m_line in MyFile:
import string, io
FileName = input("Arb file name (.txt): ")
MyFile = open(FileName, 'r')
TempFile = open('TempFile.txt', 'w', encoding='UTF-8')
for m_line in MyFile:
m_line = m_line.strip()
m_line = m_line.split(": ", 1)
if len(m_line) > 1:
del m_line[0]
#print(m_line)
MyString = str(m_line)
MyString = MyString.strip("'[]")
TempFile.write(MyString)
MyFile.close()
TempFile.close()
我的输入如下所示:
1 Jargon
2 Python
3 Yada Yada
4 Stuck
J
a
r
g
o
nP
y
t
h
o
nY
a
d
a
Y
a
d
aS
t
u
c
k
执行此操作时,我的输出为:
JargonPythonYada YadaStuck
然后,我将源代码修改为:
import string, io
FileName = input("Arb File Name (.txt): ")
MyFile = open(FileName, 'r')
TempFile = open('TempFile.txt', 'w', encoding='UTF-8')
for m_line in MyFile:
m_line = m_line.strip()
m_line = m_line.split(": ", 1)
if len(m_line) > 1:
del m_line[0]
#print(m_line)
MyString = str(m_line)
MyString = MyString.strip("'[]")
#print(MyString)
TempFile.write('\n'.join(MyString))
MyFile.close()
TempFile.close()
相同的输入和输出如下所示:
1 Jargon
2 Python
3 Yada Yada
4 Stuck
J
a
r
g
o
nP
y
t
h
o
nY
a
d
a
Y
a
d
aS
t
u
c
k
理想情况下,我希望每个单词出现在单独的一行,前面没有数字
谢谢
MarleyH您必须在每行后面写
'\n'
,因为您正在剥离原始'\n'
;
使用'\n'.join()
的想法行不通,因为它将使用\n
连接字符串,并将其插入字符串的每个字符之间。每个名称后面需要一个\n
import string, io
FileName = input("Arb file name (.txt): ")
with open(FileName, 'r') as MyFile:
with open('TempFile.txt', 'w', encoding='UTF-8') as TempFile:
for line in MyFile:
line = line.strip().split(": ", 1)
TempFile.write(line[1] + '\n')
您必须在每行之后写入
'\n'
,因为您正在剥离原始'\n'
;
使用'\n'.join()
的想法行不通,因为它将使用\n
连接字符串,并将其插入字符串的每个字符之间。每个名称后面需要一个\n
import string, io
FileName = input("Arb file name (.txt): ")
with open(FileName, 'r') as MyFile:
with open('TempFile.txt', 'w', encoding='UTF-8') as TempFile:
for line in MyFile:
line = line.strip().split(": ", 1)
TempFile.write(line[1] + '\n')
问题:
您不能执行
MyString=str(m_行)
,因为此指令创建了对象m_行的字符串表示形式,该对象m_行是一个字符串列表,因此您可以获得一个以[开头,以]结尾的字符串,包括列表中字符串元素的表示形式,也就是说,在他们周围,你必须剥去这些你自己创造的角色。相反,应用于列表的join()会立即给出所需的结果。若要消除字符串前面的数字(由以下字符的空格分隔),您可以执行line.partition(“”)[2]
作为“1行话”,您不能执行MyString=str(m_line)
由于此指令创建了对象m_行的字符串表示形式,即字符串列表,因此您可以获得一个以[开头,以]结尾的字符串,该字符串包含列表中字符串元素的reprequentations,也就是说,在其周围加上“环绕”,然后您必须去除这些字符,是你自己创造的。相反,应用于列表的join()会立即给出所需的结果。若要消除字符串前面的数字(由以下字符中的空格分隔),您可以对“1行话”行执行line.partition(“”)[2]