Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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 如何将每行拆分为两个字符串,并在不使用逗号的情况下打印?_Python - Fatal编程技术网

Python 如何将每行拆分为两个字符串,并在不使用逗号的情况下打印?

Python 如何将每行拆分为两个字符串,并在不使用逗号的情况下打印?,python,Python,我试图让输出不带逗号,并将每一行分成两个字符串并打印它们 到目前为止,我的代码生成: 173,70 134,63 122,61 140,68 201,75 222,78 183,71 144,69 但我希望它打印出来时不带逗号,每行上的值以字符串分隔 if __name__ == '__main__': # Complete main section of code file_name = "data.txt" # Open the file for reading

我试图让输出不带逗号,并将每一行分成两个字符串并打印它们

到目前为止,我的代码生成:

173,70
134,63
122,61
140,68
201,75
222,78
183,71
144,69
但我希望它打印出来时不带逗号,每行上的值以字符串分隔

if __name__ == '__main__':
    # Complete main section of code

    file_name = "data.txt"

    # Open the file for reading here

    my_file = open('data.txt') 

    lines = my_file.read() 

    with open('data.txt') as f:
        for line in f:

            lines.split()
            lines.replace(',', ' ')

    print(lines)
以open('data.txt',r')作为f的
:
对于f中的行:
对于第.split(',')行中的值:
打印(值)
将open('data.txt',r')作为f:
对于f中的行:
对于第.split(',')行中的值:
打印(值)

虽然python可以为我们提供几种打开文件的方法,但这是处理文件的首选方法。因为我们是在惰性模式下打开文件(这是首选模式,尤其是对于大文件),并且在退出带有范围(标识块)的后,系统将自动关闭文件io

在这里,我们以读取模式打开文件。文件遵循迭代器策略,因此我们可以像列表一样对它们进行迭代。每一行都是文件中的一行,是字符串类型

在得到line,in-line变量后,我们将该行拆分为两个标记,一个在逗号之前,另一个在逗号之后。拆分返回新构造的字符串列表。如果需要省略一些不需要的字符,可以使用。通常是将剥离和拆分结合在一起

优雅高效的文件读取-方法1 非优雅但高效的文件读取-方法2
虽然python可以为我们提供几种打开文件的方法,但这是处理文件的首选方法。因为我们是在惰性模式下打开文件(这是首选模式,尤其是对于大文件),并且在退出带有范围(标识块)的后,系统将自动关闭文件io

在这里,我们以读取模式打开文件。文件遵循迭代器策略,因此我们可以像列表一样对它们进行迭代。每一行都是文件中的一行,是字符串类型

在得到line,in-line变量后,我们将该行拆分为两个标记,一个在逗号之前,另一个在逗号之后。拆分返回新构造的字符串列表。如果需要省略一些不需要的字符,可以使用。通常是将剥离和拆分结合在一起

优雅高效的文件读取-方法1 非优雅但高效的文件读取-方法2
在示例代码中,
str
的形式包含文件的全部内容

my_file = open('data.txt') 
lines = my_file.read() 
然后重新打开该文件以迭代行:

with open('data.txt') as f:
    for line in f:
        lines.split()
        lines.replace(',', ' ')
但是,请注意,不要修改现有值,如所示。还要注意,您在那里操作的是
,而不是for循环变量

相反,您需要将这些函数的结果赋给新值,或者将它们作为参数(例如,to
print
)。因此,您需要打开该文件,在各行上迭代,并用
“,”
替换为
打印值:

或者,由于您仍在对整个文件进行操作:

with open("data.txt") as f:
    print(f.read().replace(",", " "))
或者,由于您的文件似乎是CSV内容,您可能希望改用标准库中的:

import csv

with open("data.txt", newline="") as csvfile:
    for row in csv.reader(csvfile):
        print(*row)

在示例代码中,
str
的形式包含文件的全部内容

my_file = open('data.txt') 
lines = my_file.read() 
然后重新打开该文件以迭代行:

with open('data.txt') as f:
    for line in f:
        lines.split()
        lines.replace(',', ' ')
但是,请注意,不要修改现有值,如所示。还要注意,您在那里操作的是
,而不是for循环变量

相反,您需要将这些函数的结果赋给新值,或者将它们作为参数(例如,to
print
)。因此,您需要打开该文件,在各行上迭代,并用
“,”
替换为
打印值:

或者,由于您仍在对整个文件进行操作:

with open("data.txt") as f:
    print(f.read().replace(",", " "))
或者,由于您的文件似乎是CSV内容,您可能希望改用标准库中的:

import csv

with open("data.txt", newline="") as csvfile:
    for row in csv.reader(csvfile):
        print(*row)

在for循环中移动您的打印状态,如下
print(lines.replace(“,”,”)
,这将产生您需要的内容。在for循环中移动您的打印状态,如下
print(lines.replace(“,”,”)
,这将产生您需要的内容。您能否详细说明代码或提供说明?如需参考,请参阅答案。您能否详细说明代码或提供说明?参考答案见