Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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_Python 3.x_Pandas - Fatal编程技术网

Python 为什么字节文字符号一直出现?

Python 为什么字节文字符号一直出现?,python,python-3.x,pandas,Python,Python 3.x,Pandas,当我打印出值时,它就可以了。但最后它给出了一个错误,因为b’把名字弄乱了。我正在读取文件f0.txt、f1.txt;计划修改它们并使用相同的名称保存它们 尝试了这里提供的utf-8解码解决方案,但不起作用 path ='/kaggle/input/' print (path) i = 1 part = 'f' + str(i) print (part) #the byte literal symbol b' doesn't appear here for i in range(0,3):

当我打印出值时,它就可以了。但最后它给出了一个错误,因为b’把名字弄乱了。我正在读取文件f0.txt、f1.txt;计划修改它们并使用相同的名称保存它们

尝试了这里提供的utf-8解码解决方案,但不起作用

path ='/kaggle/input/'
print (path)
i = 1
part = 'f' + str(i)
print (part) #the byte literal symbol b' doesn't appear here
for i in range(0,3):
    part = 'f' + str(i)
    file_path = path + part + '.csv'
    print (file_path) # the byte literal symbol b' doesn't appear here too
    pd = pd.read_csv(file_path, delim_whitespace = True) # error in this line
    np.savetxt(part.txt, pd,fmt='%.18e', delimiter=',', newline='n', header='Time,ID,lat,long,speed',)

b'/kaggle/input/f0.csv' does not exist
命令

pd.read_csv('/kaggle/input/f2.txt', delim_whitespace = True) 
他正在工作

第一种情况下的错误是:

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-33-37d9e9ecc542> in <module>
      8     file_path = path + part + '.csv'
      9     print (file_path)
---> 10     pd = pd.read_csv(file_path, delim_whitespace = True)
     11     np.savetxt(part.txt, pd,fmt='%.18e', delimiter=',', newline='n', header='Time,ID,lat,long,speed',)
     12 

/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
    676                     skip_blank_lines=skip_blank_lines)
    677 
--> 678         return _read(filepath_or_buffer, kwds)
    679 
    680     parser_f.__name__ = name

/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
    438 
    439     # Create the parser.
--> 440     parser = TextFileReader(filepath_or_buffer, **kwds)
    441 
    442     if chunksize or iterator:

/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
    785             self.options['has_index_names'] = kwds['has_index_names']
    786 
--> 787         self._make_engine(self.engine)
    788 
    789     def close(self):

/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
   1012     def _make_engine(self, engine='c'):
   1013         if engine == 'c':
-> 1014             self._engine = CParserWrapper(self.f, **self.options)
   1015         else:
   1016             if engine == 'python':

/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
   1706         kwds['usecols'] = self.usecols
   1707 
-> 1708         self._reader = parsers.TextReader(src, **kwds)
   1709 
   1710         passed_names = self.names is None

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: File b'/kaggle/input/f0.csv' does not exist
FileNotFoundError回溯(最近一次调用)
在里面
8文件路径=路径+零件+'.csv'
9打印(文件路径)
--->10 pd=pd.read\u csv(文件路径,delim\u空格=True)
11 np.savetxt(part.txt、pd、fmt='%.18e',分隔符='',换行符='n',标题='Time',ID,lat,long,speed',)
12
/解析器中的opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py(文件路径或缓冲区、sep、分隔符、标题、名称、索引列、usecols、squeeze、prefix、mangle\u dupe\u cols、数据类型、引擎、转换器、true\u值、false\u值、skipinitialspace、skiprows、nrows、na\u值、keep\u默认值、na\u筛选器、冗余、跳过空白行、解析日期、推断日期时间格式、keep\u日期列、日期解析器、dayfirst、迭代器、chunksize、压缩、千、十进制、行终止符、引号、引号、转义符、注释、编码、方言、元组、错误行、警告行、跳板、双引号、删除空格、低内存、内存映射、浮点精度)
676跳过空白行=跳过空白行)
677
-->678返回读取(文件路径或缓冲区,kwds)
679
680解析器名称
/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in_read(文件路径或缓冲区,kwds)
438
439#创建解析器。
-->440 parser=TextFileReader(文件路径或缓冲区,**kwds)
441
442如果chunksize或迭代器:
/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in u uuu init_uuu(self,f,engine,**kwds)
785 self.options['has_index_name']=kwds['has_index_name']
786
-->787自动制造发动机(自动发动机)
788
789 def关闭(自动):
/引擎中的opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py(self,engine)
1012 def制造发动机(自,发动机class='c'):
1013如果发动机=‘c’:
->1014 self.\u engine=CParserWrapper(self.f,**self.options)
1015其他:
1016如果引擎==“python”:
/opt/conda/lib/python3.6/site-packages/pandas/io/parsers.py in_u_init__;(self,src,**kwds)
1706 kwds['usecols']=self.usecols
1707
->1708 self._reader=parsers.TextReader(src,**kwds)
1709
1710 passed_names=self.names为无
pandas/_libs/parsers.pyx在pandas中。_libs.parsers.TextReader.uuuu cinit_uuuu()
pandas/_libs/parsers.pyx在pandas中。_libs.parsers.TextReader._设置_解析器_源()
FileNotFoundError:文件b'/kaggle/input/f0.csv'不存在

即使这样,也会再现您看到的行为:

import pandas as pd

pd.pd.read_csv('test.csv')
假设工作文件夹中没有名为test.csv的文件,则会导致:

FileNotFoundError: [Errno 2] File b'test.csv' does not exist: b'test.csv'
因此,
.read\u csv()
方法接受字符串作为文件名,但在使用它打开文件之前将其转换为字节序列,如果失败,则报告该值


需要注意的是,打印的值(即
b'test.csv'
)并不意味着
b
现在是文件名的一部分。它只是意味着“一个包含
test.csv
”的字节序列,将其与
'test.csv'
区分开来,没有
b
,这意味着“一个包含
test.csv
的字符串”。

即使这样也会重现您看到的行为:

import pandas as pd

pd.pd.read_csv('test.csv')
假设工作文件夹中没有名为test.csv的文件,则会导致:

FileNotFoundError: [Errno 2] File b'test.csv' does not exist: b'test.csv'
因此,
.read\u csv()
方法接受字符串作为文件名,但在使用它打开文件之前将其转换为字节序列,如果失败,则报告该值


需要注意的是,打印的值(即
b'test.csv'
)并不意味着
b
现在是文件名的一部分。它只是意味着“一个包含
test.csv
”的字节序列,将其与
'test.csv'
区分开来,没有
b
,这意味着“一个包含
test.csv
”的字符串。你知道文件系统有自己的编码吗?@wjandrea不,我刚刚开始研究python。所谓文件系统,你是指操作系统还是编译器?A基本上是一个保存文件的数据结构。但不管怎样,从Grismar的答案来看,这并不重要。你知道文件系统有自己的编码吗?@wjandrea-nope,我刚刚开始研究python。所谓文件系统,你是指操作系统还是编译器?A基本上是一个保存文件的数据结构。但不管怎样,看看格里斯玛的答案,这是不相关的。熊猫的一部分是用cython写的。Cython可以通过使用c类型而不是常规python类型来获得更好的性能。我相信这就是文件路径在这里被编码为字节的原因。@Grismar如果我直接从包含目录中引用文件,我会得到与您类似的错误。如果我从另一个目录引用,则“b”将作为文章中提到的第一个字母添加。@user3656142据我所知,引用不存在的文件时,
b
始终显示,因为调用
.read\u csv()
会生成错误消息。引用脚本工作目录内外的文件并不重要。如果您在不同的情况下看到不同的行为(对于不存在的文件),请在您的问题中提供这两种行为的示例,我将尝试相应地更新我的答案。请注意,
b
实际上不是该值的一部分-它只是由Python打印出来,以指示它是字节序列而不是字符串。@Grismar该文件存在于目录中。ls命令显示要存在的文件。在以下情况下: