Python 从文件中读取列表
我想从文件中读取一个简单的列表。但是不能将列表元素彼此分开 这是我的档案:Python 从文件中读取列表,python,python-3.x,file-io,Python,Python 3.x,File Io,我想从文件中读取一个简单的列表。但是不能将列表元素彼此分开 这是我的档案: "11","Arial","red","white","black","200x200","My Project" 这是我的阅读功能: def fread(文件名): user_file=open({})。格式(文件名),“r”) file\u content=user\u file.read() 用户_文件。关闭() 返回str(文件内容) 以下是不起作用的部分: conf_file=fread(“设置”) con
"11","Arial","red","white","black","200x200","My Project"
这是我的阅读功能:
def fread(文件名):
user_file=open({})。格式(文件名),“r”)
file\u content=user\u file.read()
用户_文件。关闭()
返回str(文件内容)
以下是不起作用的部分:
conf_file=fread(“设置”)
conf_file.split(“,”)
打印(conf_文件[2])
这将返回1而不是红色
str.split
不会改变字符串,因为它们是不可变的。您需要将返回值分配回变量:
conf_file = fread("settings")
conf_file = conf_file.split(",")
print(conf_file[2])
包含以下内容的行:
open('{}'.format(file_name), 'r')
如果不需要修改输入字符串,可以按以下方式编写:
open(file_name, 'r')
由于您的所有项目都包含在双引号中,Python将在字符串中包含它们。如果只想使用字符串中的值,则需要使用字符串的一部分来删除它们。在用逗号拆分后添加此行:
conf_file = [value[1:-1] for value in conf_file]
现在像''11'
这样的数据将只是'11'
。请注意,这不会将字符串
11转换为int
11 您需要在“逗号”上拆分,并删除包含的双引号-
此外,不需要四行函数来读取文件内容:
conf_file = [part.strip('"') for part in open(filename).read().split(",")]
您可以使用
csv
模块
import csv
def fread(file_name):
with open(file_name) as f:
return next(csv.reader(f))
print(fread("file.name"))
用conf\u file=conf\u file.split(“,”)替换conf\u file.split(“,”)