Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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的问题';s file.write()方法和字符串处理_Python_String_List_File - Fatal编程技术网

Python的问题';s file.write()方法和字符串处理

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:

此时我遇到的问题(对于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:
    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')
问题:

  • str.split()的结果是一个列表(这就是为什么当您将其转换为str时,会得到['my item'])

  • write不添加换行符;如果您想要一个,您必须显式地添加它

  • 问题:

  • str.split()的结果是一个列表(这就是为什么当您将其转换为str时,会得到['my item'])

  • write不添加换行符;如果您想要一个,您必须显式地添加它


  • 您不能执行
    MyString=str(m_行)
    ,因为此指令创建了对象m_行的字符串表示形式,该对象m_行是一个字符串列表,因此您可以获得一个以[开头,以]结尾的字符串,包括列表中字符串元素的表示形式,也就是说,在他们周围,你必须剥去这些你自己创造的角色。相反,应用于列表的join()会立即给出所需的结果。若要消除字符串前面的数字(由以下字符的空格分隔),您可以执行
    line.partition(“”)[2]
    作为“1行话”,您不能执行
    MyString=str(m_line)
    由于此指令创建了对象m_行的字符串表示形式,即字符串列表,因此您可以获得一个以[开头,以]结尾的字符串,该字符串包含列表中字符串元素的reprequentations,也就是说,在其周围加上“环绕”,然后您必须去除这些字符,是你自己创造的。相反,应用于列表的join()会立即给出所需的结果。若要消除字符串前面的数字(由以下字符中的空格分隔),您可以对“1行话”行执行
    line.partition(“”)[2]