请原谅,我刚开始学习Python作为第一种编程语言。我打算打开一个文件,其中有一行数字,用空格分隔,我想打开文件,将行转换为一列。我能够通过几种方式做到这一点,问题不在于如何做到这一点,因为“我如何得到这个结果?”
这就是我所做的:
Myfile = Open ('C:/Python/training_Examples/row.txt')
myfile = Myfile.read()
Myfiles = str(myfile)
for i in Myfiles:
print (i)
Myfile = Open ('C:/Python/training_Examples/row.txt')
myfile = Myfile.read()
Myfiles = str(myfile)
File = Myfiles.replace(" ", "\n")
for i in File:
print (i)
第二个添加了一行,但它确实将空格分隔的数字转换为列,问题来自我的第一个方法,为什么它将行转换为一列?
答案 0 :(得分:4)
要理解为什么会发生这种情况,请考虑以下简单示例
myString = '12345'
for character in myString:
print character
输出将如下所示:
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
发生这种情况的原因是for
循环遍历字符串中的每个字符,print
语句在其自己的行上打印每个字符。
如果原始文件的第一行看起来像这样
This is the first line in the file
那么你的输出就是
>>> T
>>> h
>>> i
>>> s
>>>
>>> i
>>> s
>>>
>>> t
>>> h
>>> e
...
总而言之,字符串可以迭代,就像列表一样,因此for
循环一次只给你一个字符,而print
语句将每个字符放在它自己的行上。
答案 1 :(得分:0)
我不确定我是否理解得很好。您说您必须将文件中的行转换为列。
您的两个解决方案仅显示列中的数据,但不会将其写入文件。要真正将一个文件转换为另一个文件,您必须创建一个单独的文件并写入其中。
如果有多行,您的approches也不起作用。
一种方法是将文件读入行列表,将每行读入数字列表。然后迭代这个二维列表,将其写入新文件。